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

SET IDENTITY_INSERT postgresql

Bạn không cần set identity_insert trong Postgres.

Chỉ cần chèn dữ liệu vào bảng của bạn.

Tuy nhiên, điều bạn cần làm là đồng bộ hóa lại các trình tự đằng sau cột nối tiếp ("tăng tự động") của bạn bằng cách sử dụng setval() chức năng:

select setval(pg_get_serial_sequence('my_table', 'my_serial_column'), 
              (select max(my_serial_column) from my_table) 
       ); 

Nếu cột không được xác định là một serial nhưng "only" có giá trị mặc định được lấy từ một chuỗi, bạn cần cung cấp tên chuỗi "theo cách thủ công"

select setval('my_sequence_name', (select max(my_serial_column) 
                                   from my_table)
       ); 

Chỉnh sửa

Đây là ví dụ về SQLFiddle: http://sqlfiddle.com/#!15/690ea/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. Quy trình đồng thời chèn dữ liệu vào cơ sở dữ liệu

  2. Python psycopg2 không chèn vào bảng postgresql

  3. fe_sendauth:không có lỗi cung cấp mật khẩu trong postgresql + laravel

  4. Cách khắc phục tập lệnh Sao lưu tự động cho postgres [Window]?

  5. Lưu đầu ra PL / pgSQL từ PostgreSQL vào tệp CSV