Chuyển dữ liệu từ MySQL -> PostgreSQL

Như tit em vừa chuyển dữ liệu từ MYSQL sang PSQL . Thì vấn đề là em có table “image” , img_id bắt đầu từ 56 -> 2234 . Sau khi insert thêm record mới thì nó thêm bắt đầu từ 1 chứ không phải là 2235 . Mọi người giúp em giải quyết với ạ ? Em xin cảm ơn trước

table image :

CREATE TABLE "image"(
  SERIAL PRIMARY KEY,
  img_name varchar(255) NOT NULL,
  img_preview varchar(255) NOT NULL,
  img_sample varchar(255) NOT NULL,
  img_full varchar(255) NOT NULL,
  file_size integer NOT NULL,
  favourite smallint NOT NULL DEFAULT '0',
  uploader integer NOT NULL DEFAULT '1',
  width smallint NOT NULL DEFAULT '0',
  height smallint NOT NULL DEFAULT '0',
  ext varchar(5) DEFAULT NULL,
  cate_id integer NOT NULL DEFAULT '0',
  adult boolean,
  create_date timestamp NOT NULL,
  string_tag text NOT NULL
)

Table image của bạn có trường nào là trường img_id đâu? Định troll mọi người à? Và cũng không thấy bạn nói chuyển dữ liệu bằng cách gì? (Có sẵn công cụ hay lập trình hay gõ lệnh có sẵn do DBMS cung cấp).

Nên loay hoay các cách, và khi hỏi nhớ cung cấp thông tin rõ hơn.

Túm lại: bạn nên map các trường cho đúng, và trường nào không auto increase thì đừng dại mà để nó auto để tránh như vừa kể hoặc lỡ rồi thì gỡ tạm nó khỏi khoá, dùng câu lệnh update để cập nhật. Trường hợp bí quá, ta tạo một CSDL/ bảng mới hoàn toàn rỗng để làm.

Cách mình làm thô thiển nhất tiếp cận không theo suy nghĩ của dân IT: mình biến các dòng INSERT đó thành file Excel và dùng chức năng điền số thứ tự của Excel rồi concate chuỗi lại. Sau cùng, lại chuyển file Excel thành file .csv hoặc .sql để import vào lại.

5 Likes

Tớ đồng ý với @superthin, câu hỏi của cậu có khá nhiều vấn đề. Cậu hỏi như vậy thì không ai muốn trả lời cậu cả đâu :slight_smile:

Tuy vậy, tớ cũng hiểu vấn đề của cậu. Tớ nghĩ cậu đáng lẽ ra có thể search google ra câu trả lời rất nhanh. Vậy nên, lần sau cậu nên tra cứu trước khi hỏi, và cố gắng đừng lặp lại sai lầm mà Thìn đã chỉ ra cho cậu.
Nếu cậu lặp lại việc này lần nữa, đừng ngỡ ngàng khi không ai trả lời cậu, hoặc hỏi cậu lại rất nhiều nha.

Try this:

SELECT SETVAL((SELECT pg_get_serial_sequence('image', 'img_id')), 2235, false);

P/s: I’ve just read your previous question in this forum. Absolutely pathetic!
You’ve never replied anything, and have never marked solution for your question.
It’s absolutely minimal sign of respectful attitude which you should show to other who helped you.
Consider this post is the last support I do for you, until you show a better attitude.

6 Likes

Đồng quan điểm, sao giờ mọi người bị sợ google hay sao ấy :grimacing:

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?