sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan importerer man en CSV til postgresql, der allerede har tildelt id'er?

En serial kolonne trækker kun det næste tal fra en sekvens som standard . Hvis du skriver en værdi til den, vil standarden ikke slå ind. Du kan bare COPY til bordet (se @Saravanans svar ) og opdater derefter sekvensen i overensstemmelse hermed. En måde at gøre dette på:

SELECT setval('tbl_tbl_id_seq', max(tbl_id)) FROM tbl;

tbl_id er den serielle kolonne i tabellen tbl , tegning fra sekvensen tbl_tbl_id_seq (standardnavn).

Bedst i en enkelt transaktion i tilfælde af samtidig belastning.

Bemærk, der er ingen off-by-1 fejl her. Pr. dokumentation:

Fed fremhævelse mine.



  1. Sådan bruges Zend Framework til at eksportere til CSV ved hjælp af mySQL's INTO OUTFILE-funktionalitet

  2. indstilling af flere kolonner ved hjælp af én opdatering

  3. Hvorfor er de slettede (uforpligtede) rækker i Oracle SQL ikke synlige i den aktuelle session, men synlige i andre sessioner?

  4. Liste over talformatelementer i Oracle