Page 1 sur 1

Après restauration des données

Posté : sam. mars 11, 2017 3:59 pm
par Denis_q
Bonjour,

Avec une petite routine utilisant find (sous Linux) pour lancer divers fichiers sql contenus dans un répertoire, j'ai restauré la base et ses données (en utilisant INSERT - postgres).
Tout fonctionne bien sauf....

Sauf que quand je veux saisir une écriture comptable, il y a erreur du genre :
détail : La clé « ("ID")=(2) » existe déjà.
J'ai donc pensé qu'il fallait mettre à jour les index peut être et j'ai fait ça :

Code : Tout sélectionner

OpenConcerto=> REINDEX DATABASE "OpenConcerto";
REINDEX
OpenConcerto=> \q
Ce qui n'a rien changé au problème. Ce n'est donc pas un soucis de mise à jour des index ?
Quelle piste SVP ? Merci.

Re: Après restauration des données

Posté : sam. mars 11, 2017 5:28 pm
par guillaume
Bonjour,

C'est simplement vos "increments" sur vos clefs primaires qui ne sont pas bons.

Cordialement,

Re: Après restauration des données

Posté : lun. mars 13, 2017 7:28 am
par Denis_q
Merci. Ces incréments sont gérés dans le code java ? Je n'ai pas vu dans le chapitre 16 du livre comment on gére l'incrémentation des clefs primaires...

Bonne journée.

Re: Après restauration des données

Posté : lun. mars 13, 2017 7:36 am
par Samuel_Burg
Bonjour,

ceci a déjà été traité dans d'autres messages, vous avez un pb d'ID et d'incrément de séquence dans la DB.

Pour la mise à jour des séquences vous devez utiliser quelques chose comme ça :

SELECT setval('"COMPTE_PCE_ID_seq"', (SELECT MAX("ID") FROM "COMPTE_PCE"));

Bon, évidement, ça c'est l'exemple pour le plan comptable de l'entreprise, il faut l'appliquer à la bonne table pour vous !

Cordialement,

Samuel

Re: Après restauration des données

Posté : ven. mars 17, 2017 5:24 pm
par Denis_q
Merci tout cela à bien fonctionné. Désolé de ne pas avoir trouvé les discussions sur ce sujet je n'ai pas dû avoir les bons mots de recherche.

Re: Après restauration des données

Posté : sam. mars 18, 2017 11:09 am
par Samuel_Burg
j'y pense,
vous pouvez aussi utiliser une interface graphique de type pgadminIII et éditer directement les *_seq pour leur donner la bonne valeur, mais ça n'est pratique que si vous avez une ou deux *_seq à corriger.

cordialement,

Samuel