PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

SET IDENTITY_INSERT postgresql

Nie potrzebujesz set identity_insert w Postgresie.

Po prostu wstaw dane do swojej tabeli.

Musisz jednak ponownie zsynchronizować sekwencje, które znajdują się za kolumną serial ("auto increment") za pomocą setval() funkcja:

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

Jeśli kolumna nie jest zdefiniowana jako serial ale "tylko" ma wartość domyślną pobraną z sekwencji, musisz podać nazwę sekwencji "ręcznie"

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

Edytuj

Oto przykład 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. Jak zainstalować rozszerzenia Postgres podczas tworzenia bazy danych?

  2. Co nowego w PostgreSQL 13?

  3. C# łączenie się z bazą danych postgres

  4. Uruchom kod rails po zatwierdzeniu aktualizacji bazy danych, bez after_commit

  5. Transakcja autonomiczna w PostgreSQL 9.1