PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

SET IDENTITY_INSERT postgresql

Vous n'avez pas besoin de set identity_insert dans Postgres.

Insérez simplement les données dans votre tableau.

Ce que vous devez faire cependant, c'est de resynchroniser les séquences qui se trouvent derrière votre colonne de série ("incrémentation automatique") en utilisant le setval() fonction :

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

Si la colonne n'est pas définie comme un serial mais "seulement" a une valeur par défaut tirée d'une séquence, vous devez fournir le nom de la séquence "manuellement"

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

Modifier

Voici un exemple SQLFiddle :http://sqlfiddle.com/#!15/690ea/1