PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да импортирам CSV в postgresql, който вече има присвоен ID?

serial колона изтегля само следващото число от последователност по подразбиране . Ако напишете стойност в него, стойността по подразбиране няма да влезе в сила. Можете просто да COPY към масата (вижте отговора на @Saravanan ) и след това актуализирайте съответно последователността. Едно начин да направите това:

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

tbl_id като серийната колона на таблица tbl , извличайки от последователността tbl_tbl_id_seq (име по подразбиране).

Най-доброто в една транзакция в случай на едновременно натоварване.

Забележете, че тук няма грешка от 1. Съгласно документацията:

Удебелен акцент е мой.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвате физическото местоположение на редовете (ROWID) в оператор DELETE

  2. Защо Sequelize migration създава таблица, но моделите не могат да се свържат с база данни

  3. Размито търсене на ActiveRecord

  4. Зареждане на RDF данни в PostgreSQL таблица чрез RDFLib-SQLAlchemy

  5. Напълно гарантиран ли е редът на PostgreSQL, ако сортирате по неуникален атрибут?