mysql supprime les données d'index de lien externe
Impossible de supprimer ou de mettre à jour une ligne parente: une contrainte de clé étrangère échoue La solution au problème
Requête: DELETE FROM goods
WHERE goods_id
= '11'
Code d'erreur: 1451
Impossible de supprimer ou de mettre à jour une ligne parente: une contrainte de clé étrangère échoue ( webDB
. goods_properties_detail
, CONSTRAINT FK_rip_43
FOREIGN KEY ( goods_id
) REFERENCES goods
( goods_id
)) Ce qui
précède est dû au fait qu'un certain champ de l'enregistrement est utilisé comme lien externe vers une autre table dans InnoDB. Le lien externe sera automatiquement vérifié lors de l'opération de suppression.
Solution 1: déterminez d'abord de supprimer les données associées, puis supprimez (cela est plus conforme à la logique métier et plus sûr).
Solution 2: ne vérifiez pas les liens externes, définissez la variable FOREIGN_KEY_CHECKS:
SET FOREIGN_KEY_CHECKS = 0;
DELETE FROM `goods` WHERE `goods_id` = '11'
Définir après suppression
SET FOREIGN_KEY_CHECKS = 1;
ps: désactiver la vérification d'unicité
set unique_checks=0;
set unique_checks=1;