Après restauration des données

Répondre
Denis_q
Messages : 42
Enregistré le : ven. avr. 03, 2015 4:41 pm

sam. mars 11, 2017 3:59 pm

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.
--
Denis Q.
GNU Linux noyau 6.2.12-300.fc38.x86_64
openjdk 17.0.6 2023-01-17
psql (PostgreSQL) 12.14
Avatar du membre
guillaume
Messages : 2458
Enregistré le : ven. févr. 11, 2011 7:15 pm

sam. mars 11, 2017 5:28 pm

Bonjour,

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

Cordialement,
Directeur technique d'OpenConcerto qui dans son temps libre s'occupe du forum.
Pour une assistance pro, nous sommes joignables à ILM Informatique contre quelques jetons.
Pensez aussi à lire le manuel !
Denis_q
Messages : 42
Enregistré le : ven. avr. 03, 2015 4:41 pm

lun. mars 13, 2017 7:28 am

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.
--
Denis Q.
GNU Linux noyau 6.2.12-300.fc38.x86_64
openjdk 17.0.6 2023-01-17
psql (PostgreSQL) 12.14
Samuel_Burg
Messages : 144
Enregistré le : mer. juil. 22, 2015 12:17 pm

lun. mars 13, 2017 7:36 am

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
Denis_q
Messages : 42
Enregistré le : ven. avr. 03, 2015 4:41 pm

ven. mars 17, 2017 5:24 pm

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.
--
Denis Q.
GNU Linux noyau 6.2.12-300.fc38.x86_64
openjdk 17.0.6 2023-01-17
psql (PostgreSQL) 12.14
Samuel_Burg
Messages : 144
Enregistré le : mer. juil. 22, 2015 12:17 pm

sam. mars 18, 2017 11:09 am

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
Répondre