serial
kolom hanya menarik nomor berikutnya dari urutan secara default . Jika Anda menulis nilai, default tidak akan muncul. Anda cukup COPY
ke tabel (lihat jawaban @Saravanan
) dan kemudian perbarui urutannya. Satu caranya:
SELECT setval('tbl_tbl_id_seq', max(tbl_id)) FROM tbl;
tbl_id
menjadi kolom serial tabel tbl
, menggambar dari urutan tbl_tbl_id_seq
(nama default).
Terbaik dalam transaksi tunggal dalam kasus beban bersamaan.
Catatan, tidak ada kesalahan off-by-1 di sini. Per dokumentasi:
Penekanan saya yang berani.