J'ai trouvé un bug drôle important un fichier de vidage de postgresql avec psql:Dans sauvegarde/restauration PostgreSQL, des séquences supplémentaires d'auto dupliquer contrainte de violation
Dans le cas si votre table a une sequence(auto increment field)
, par exemple avant nextValue l'importation de la séquence a été 10, après l'importation, nous ajoutons 100 lignes et logiquement nextvalue doit être 111. Mais il est toujours 11, et bien sûr vous aurez une violation de contrainte sur l'insertion suivante.
La solution:
- obtenir la prochaine valeur actuelle avec un
select nextval('xxx_seq')
select max(xxx_id) from yyyy
Il est de vous donner la valeur actuelle max id autoincrement.
Maintenant, nous devons définir la valeur suivante à 2) + 1:
SELECT setval('xxx_seq', n+1, true)
Dump dans un fichier:
pg_dump --data-only -h host -p port -U username -a dbname > outputfilename
Restauration de la décharge:
psql -h host -U username dbname < outputfilename
J'utilise la version db 9.5.5.
1. Bon début. 2. Notez qu'il serait important de rendre votre question aussi compréhensible que possible. Le formatage est important. La grammaire est également importante. 3. S'il vous plaît, divisez votre message en un formulaire de questions/réponses. C'est nécessaire car en lisant votre post, les googleurs du futur veulent ici une question. – peterh