serial
колона изтегля само следващото число от последователност по подразбиране . Ако напишете стойност в него, стойността по подразбиране няма да влезе в сила. Можете просто да COPY
към масата (вижте отговора на @Saravanan
) и след това актуализирайте съответно последователността. Едно начин да направите това:
SELECT setval('tbl_tbl_id_seq', max(tbl_id)) FROM tbl;
tbl_id
като серийната колона на таблица tbl
, извличайки от последователността tbl_tbl_id_seq
(име по подразбиране).
Най-доброто в една транзакция в случай на едновременно натоварване.
Забележете, че тук няма грешка от 1. Съгласно документацията:
Удебелен акцент е мой.