sql >> Database >  >> RDS >> PostgreSQL

Hoe importeer ik een CSV naar postgresql waaraan al ID's zijn toegewezen?

Een serial kolom tekent alleen het volgende nummer uit een reeks standaard . Als je er een waarde naar schrijft, wordt de standaardwaarde niet geactiveerd. Je kunt gewoon COPY naar de tafel (zie @Saravanan' antwoord ) en werk vervolgens de volgorde dienovereenkomstig bij. Eén manier om dit te doen:

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

tbl_id zijnde de seriële kolom van tabel tbl , tekenend uit de reeks tbl_tbl_id_seq (standaardnaam).

Het beste in een enkele transactie in geval van gelijktijdige belasting.

Let op, er is hier geen off-by-1-fout. Per documentatie:

Vetgedrukte nadruk van mij.



  1. laravel welsprekend sorteren op relatie

  2. Flask-SQLAlchemy - Wanneer worden de tabellen/databases gemaakt en vernietigd?

  3. Cygnus-NGSI slaat geen gegevens op in PostgreSQL

  4. Mysql, PHP, zoeken naar meerdere woorden