PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để nhập CSV vào postgresql đã được gán ID?

serial cột chỉ vẽ số tiếp theo từ một chuỗi theo mặc định . Nếu bạn ghi giá trị vào nó, giá trị mặc định sẽ không hoạt động. Bạn chỉ có thể COPY vào bảng ( xem câu trả lời của @Saravanan ) và sau đó cập nhật trình tự cho phù hợp. Một cách để làm điều này:

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

tbl_id là cột nối tiếp của bảng tbl , vẽ từ chuỗi tbl_tbl_id_seq (tên mặc định).

Tốt nhất trong một giao dịch duy nhất trong trường hợp tải đồng thời.

Lưu ý, ở đây không có lỗi off-by-1. Theo tài liệu:

Điểm nhấn đậm của tôi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách LocalTimeStamp () hoạt động trong PostgreSQL

  2. mặc định cho cột xxxx không thể được truyền tự động để nhập boolean trong Postgres DB

  3. nhóm theo phạm vi giá

  4. PSQLException:Các đối tượng lớn có thể không được sử dụng trong chế độ tự động cam kết

  5. Tại sao tôi không thể sử dụng bí danh cột trong biểu thức SELECT tiếp theo?