PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

SET IDENTITY_INSERT postgresql

Sie brauchen set identity_insert nicht in Postgres.

Fügen Sie einfach die Daten in Ihre Tabelle ein.

Was Sie jedoch tun müssen, ist, die Sequenzen, die sich hinter Ihrer Seriennummernspalte ("auto increment") befinden, mit setval() erneut zu synchronisieren Funktion:

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

Wenn die Spalte nicht als serial definiert ist aber "nur" einen Standardwert aus einer Sequenz hat, müssen Sie den Sequenznamen "manuell" angeben

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

Bearbeiten

Hier ist ein SQLFiddle-Beispiel:http://sqlfiddle.com/#!15/690ea/1