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
[HELP ME] Suite à importation de clients dans PostgreSQL
Bonjour,
Ça n'a rien à voir avec OpenConcerto... vous n'avez pas mis à jour vos séquences dans les tables...
Cordialement,
Ça n'a rien à voir avec OpenConcerto... vous n'avez pas mis à jour vos séquences dans les tables...
Cordialement,
-
- Messages : 144
- Enregistré le : mer. juil. 22, 2015 12:17 pm
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
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
-
- Messages : 4
- Enregistré le : mer. sept. 07, 2016 7:57 am
Bonjour,
Merci pour vos réponse...
Je vais tenter un
Merci pour vos réponse...
Je vais tenter un
Code : Tout sélectionner
SELECT setval('"ADRESSE_ID_seq"', (SELECT MAX("ID") FROM "ADRESSE"));
-
- Messages : 4
- Enregistré le : mer. sept. 07, 2016 7:57 am
Merci à tous, ça a fonctionné...
La bonne requête était :
PgAdmin3 m'a répondu "1010", ce qui est exact 
La bonne requête était :
Code : Tout sélectionner
SELECT setval('"OpenConcerto49"."ADRESSE_ID_ADRESSE_seq"', (SELECT MAX("ID_ADRESSE") FROM "OpenConcerto49"."ADRESSE"));
