Tôi có một cái bàn items (item_id serial, name varchar(10), item_group int)
và một cái bàn items_ver (id serial, item_id int, name varchar(10), item_group int)
.
Bây giờ tôi muốn chèn một hàng vào items_ver
từ items
. Có cú pháp SQL ngắn nào để làm việc này không?
Tôi đã thử với:
INSERT INTO items_ver VALUES (SELECT * FROM items WHERE item_id = 2);
nhưng tôi gặp lỗi cú pháp:
ERROR: syntax error at or near "select"
LINE 1: INSERT INTO items_ver VALUES (SELECT * FROM items WHERE item...
Bây giờ tôi đã thử:
INSERT INTO items_ver SELECT * FROM items WHERE item_id = 2;
Nó hoạt động tốt hơn nhưng tôi gặp lỗi:
ERROR: column "item_group" is of type integer but expression is of type
character varying
LINE 1: INSERT INTO items_ver SELECT * FROM items WHERE item_id = 2;
Điều này có thể là do các cột được xác định theo thứ tự khác nhau trong các bảng. Liệu thứ tự cột có vấn đề? Tôi hy vọng rằng PostgreSQL khớp với tên cột.