Un serial
columna solo dibuja el siguiente número de una secuencia por defecto . Si le escribe un valor, el valor predeterminado no se activará. Puede simplemente COPY
a la mesa (ver la respuesta de @Saravanan
) y luego actualice la secuencia en consecuencia. Uno manera de hacer esto:
SELECT setval('tbl_tbl_id_seq', max(tbl_id)) FROM tbl;
tbl_id
siendo la columna serial de la tabla tbl
, a partir de la secuencia tbl_tbl_id_seq
(nombre predeterminado).
Mejor en una transacción única en caso de carga concurrente.
Tenga en cuenta que no hay ningún error de apagado por 1 aquí. Por documentación:
Énfasis en negrita mío.