Bonjour à tous,
Je prépare une migration v11 -> v12.0.5 et lors de la mise à jour j’ai une jolie erreur SQL
La requete
ALTER TABLE llx_commandedet ADD CONSTRAINT fk_commandedet_fk_commandefourndet FOREIGN KEY (fk_commandefourndet) REFERENCES llx_commande_fournisseurdet(rowid);
me retourne
Cannot add or update a child row: a foreign key constraint fails (
dolitest.
#sql-525f_384905, CONSTRAINT
fk_commandedet_fk_commandefourndet FOREIGN KEY (
fk_commandefourndet) REFERENCES
llx_commande_fournisseurdet (
rowid))
Si j’enlève la ligne 310 du fichier migration/11.0.0-12.0.0.sql ça passe tout seul.
On peut lier commande_det et commande_fournisseurdet ? Pour quoi faire nativement ?
@+
Je pense avoir trouvé. Il doit s’agir d’un bug du module CommandeClient=>CommandeFournisseur qui renseignait à zéro le champ fk_commandefourndet
certainement à un moment. Je n’ai le bug que là où il y a eu ce module.
La solution a été de faire un update sur la table :
UPDATE llx_commandedet SET fk_commandefourndet=NULL WHERE fk_commandefourndet=0
@+
1 « J'aime »
Bonjour @Philazerty
Est ce que le module ATM Commande fournisseur depuis une commande client est installé ?
Il sert justement à générer une commande fournisseur depuis celle d’un client et on peut raisonnablement supposer qu’il y a un lien entre les 2 tables
Cordialement
Eric
1 « J'aime »
Bonjour
Pour passer de v10 à v13 j’ai eu cette erreur aussi.
J’ai donc tenté :
UPDATE llx_commandedet SET fk_commandefourndet=NULL WHERE fk_commandefourndet=0
Puis de faire le fameux
ALTER TABLE llx_commandedet ADD CONSTRAINT fk_commandedet_fk_commandefourndet FOREIGN KEY (fk_commandefourndet) REFERENCES llx_commande_fournisseurdet (rowid);
Mais j’ai toujours l’erreur
Cannot add or update a child row: a foreign key constraint fails (doli
.#sql-3e83_10dd
, CONSTRAINT fk_commandedet_fk_commandefourndet
FOREIGN KEY (fk_commandefourndet
) REFERENCES llx_commande_fournisseurdet
(rowid
))
Finalement tout est rentré dans l’ordre comme par magie