sql >> Databáze >  >> RDS >> PostgreSQL

SET IDENTITY_INSERT postgresql

Nepotřebujete set identity_insert v Postgres.

Stačí vložit data do tabulky.

Co však musíte udělat, je znovu synchronizovat sekvence, které jsou za vaším sériovým sloupcem („automatický přírůstek“) pomocí setval() funkce:

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

Pokud sloupec není definován jako serial ale "pouze" má výchozí hodnotu převzatou ze sekvence, musíte zadat název sekvence "manuálně"

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

Upravit

Zde je příklad SQLFiddle:http://sqlfiddle.com/#!15/690ea/1




  1. Co přesně jsou parametry IN, OUT, IN OUT v PL/SQL

  2. Změnit kódování seznamu objektů

  3. Vazba EF Core na tabulku Mysql

  4. Použijte výsledek pg_dump jako vstup pro pg_restore