sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo importar un CSV a postgresql que ya tiene ID asignados?

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.