serial
cột chỉ vẽ số tiếp theo từ một chuỗi theo mặc định . Nếu bạn ghi giá trị vào nó, giá trị mặc định sẽ không hoạt động. Bạn chỉ có thể COPY
vào bảng ( xem câu trả lời của @Saravanan
) và sau đó cập nhật trình tự cho phù hợp. Một cách để làm điều này:
SELECT setval('tbl_tbl_id_seq', max(tbl_id)) FROM tbl;
tbl_id
là cột nối tiếp của bảng tbl
, vẽ từ chuỗi tbl_tbl_id_seq
(tên mặc định).
Tốt nhất trong một giao dịch duy nhất trong trường hợp tải đồng thời.
Lưu ý, ở đây không có lỗi off-by-1. Theo tài liệu:
Điểm nhấn đậm của tôi.