PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Problème d'INSERT après import de données

Technique - général | Problème d'INSERT après import de données

Par velgu le 04/07/2007 - 16:45

Bonjour,

j'ai créé une nouvelle table sur Postgresql puis j'ai importé des données d'une base sql server via un fichier .csv
L'import s'est bien passé et m'a enregistré plus de 70 lignes.

Ma table est composé de deux colonnes : idpays et nompays. La colonne idpays est ma clé primaire.
Voici le détail de la colonne ID :

ALTER TABLE pays ADD COLUMN idpays integer;
ALTER TABLE pays ALTER COLUMN idpays SET STORAGE PLAIN;
ALTER TABLE pays ALTER COLUMN idpays SET NOT NULL;
ALTER TABLE pays ALTER COLUMN idpays SET DEFAULT nextval('pays_idpays_seq'::regclass);

Mon problème vient quand je souhaite faire un INSERT dans cette table. Postgresql veut faire un INSERT mais en partant de l'idpays 1. Hors cet id est déjà prit puique j'ai importé des données via mon fichier csv.

Voici l'erreur qui ressort :
ERROR: duplicate key violates unique constraint "ClePays"
État SQL :23505

Comment faire pour que mes enregistrements débutent à partir du premier id disponible et non à partir de l'idpays 1

Merci d'avance pour vos réponses

velgu

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Bonjour je vois que sur le

Christophe Chauvet/ = 5 Juillet, 2007 - 09:23

Bonjour

je vois que sur le champ idpays vous avez une séquence, donc il faut que cette séquence soit égale a la plus grande valeur présente dans cette colonne.

ex:

ALTER SEQUENCE pays_idpays_seq RESTART WITH 10

cette séquence sera initialisé à 10, donc lors du prochain NEXTVAL sur cette colonne on récupérera la valeur 11.

Cordialement.

Christophe Chauvet
KrysKool.org


merci pour ton aide, je viens

velgu/ = 12 Juillet, 2007 - 13:43

merci pour ton aide, je viens effectivement de mettre en application ta méthode et cela marche parfaitement maintenant.


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.