Page 1 sur 1

[HELP ME] Suite à importation de clients dans PostgreSQL

Posté : mer. sept. 07, 2016 8:09 am
par creasite59
Bonjour à tous,

Je découvre OpenConcerto et je me heurte à un problème que je ne parviens pas à résoudre seul. Votre aide est donc la bienvenue.

Mon problème :
J'ai importer un petit millier de clients directement dans la base de donnée en remplissant deux tables :
- La table stockant les adresses,
- La table stockant les clients...

Tout s'est merveilleusement bien passé.

Les soucis arrivent lorsque je crée un nouveau client via l'interface de gestion d'OpenConcerto :
Tous les champs remplis, j'enregistre et là, catastrophe :
OpenConcerto crée le client avec un ID du style 1034 mais tente d'enregistrer son adresse avec un ID genre 7. Or, après mon import, le n°7 est déjà pris dans la table des adresses et forcément, cela engendre un violation de contrainte liée à la clé primaire des adresses...

Comment "forcer" OpenConcerto à enregistrer l'adresse du nouveau client sur un ID libre et non, l'un de ceux que j'ai importer...

La seule solution que j'ai trouvé consisterait à me taper un millier d'échec car à chaque t'entative, OC incrémente l'ID de l'adresse de 1.

Merci de votre aide

Re: [HELP ME] Suite à importation de clients dans PostgreSQL

Posté : mer. sept. 07, 2016 12:57 pm
par guillaume
Bonjour,

Ça n'a rien à voir avec OpenConcerto... vous n'avez pas mis à jour vos séquences dans les tables...

Cordialement,

Re: [HELP ME] Suite à importation de clients dans PostgreSQL

Posté : ven. sept. 09, 2016 9:18 am
par Samuel_Burg
Bonjour,

Apparemment vous avez bricolé la base de données.

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 !

Et l'injection dans une table n'est généralement pas suffisante, il vous faut aussi gérer les dépendances d’indexation entres les différentes tables pour ne pas avoir une pile de problèmes dans un second temps.

Cordialement,

Samuel

Re: [HELP ME] Suite à importation de clients dans PostgreSQL

Posté : ven. sept. 09, 2016 1:19 pm
par creasite59
Bonjour,

Merci pour vos réponse...

Je vais tenter un

Code : Tout sélectionner

SELECT setval('"ADRESSE_ID_seq"', (SELECT MAX("ID") FROM "ADRESSE"));

Re: [HELP ME] Suite à importation de clients dans PostgreSQL

Posté : ven. sept. 09, 2016 1:25 pm
par creasite59
Merci à tous, ça a fonctionné...

La bonne requête était :

Code : Tout sélectionner

SELECT setval('"OpenConcerto49"."ADRESSE_ID_ADRESSE_seq"', (SELECT MAX("ID_ADRESSE") FROM "OpenConcerto49"."ADRESSE"));
PgAdmin3 m'a répondu "1010", ce qui est exact ;)