sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur importerar man en CSV till postgresql som redan har tilldelade ID?

En serial kolumn drar bara nästa nummer från en sekvens som standard . Om du skriver ett värde till det kommer standardvärdet inte att slå in. Du kan bara COPY till bordet (se @Saravanans svar ) och uppdatera sedan sekvensen därefter. En sätt att göra detta:

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

tbl_id är seriekolumnen i tabellen tbl , ritning från sekvensen tbl_tbl_id_seq (standardnamn).

Bäst i en enskild transaktion vid samtidig belastning.

Observera att det inte finns något off-by-1-fel här. Per dokumentation:

Djärv betoning min.



  1. Hur man tar bort data från Elastisearch

  2. Stoppa eller avsluta långvarig fråga i JDBC

  3. Hur använder man Partition By eller Max?

  4. MySQL hitta oanvända tabeller