J'ai une question concernant les clés étrangères dans une table InnoDB. J'ai 4 tables dans ma base de données:MySQL et les clés étrangères
Inscription:
- UID - clé primaire
- AFID
- PlanID
- Industryid
Affiliés:
- AFID - clé primaire
Plans:
- PlanID - clé primaire
Industries:
- Industryid - Clé primaire
SQL que j'utilise pour ajouter les clés:
CONSTRAINT `FK_signup_industries` FOREIGN KEY (`industryid`) REFERENCES `industries` (`industryid`) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT `FK_signup_affiliates` FOREIGN KEY (`afid`) REFERENCES `affiliates` (`afid`) ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT `FK_signup_plans` FOREIGN KEY (`planid`) REFERENCES `plans` (`planid`) ON UPDATE CASCADE ON DELETE CASCADE
ma question est:
Si je devais supprimer un plan ou d'une industrie sur leur tables respectives serait l'utilisateur dans la table d'inscription être supprimé? J'ai essayé de trouver des guides à ce sujet et ils ne l'expliquent pas très bien.
Fondamentalement ce que j'ai besoin fait est que la rangée dans la table d'inscription ne doit jamais être supprimée n'importe quoi. Lorsque j'utilise cette requête:
CONSTRAINT `FK_signup_plans` FOREIGN KEY (`planid`) REFERENCES `plans` (`planid`) ON UPDATE CASCADE ON DELETE NO ACTION
Je reçois cette erreur:
Cannot delete a parent row.
Donc, il n'y a aucun moyen de changer la valeur sur supprimer à quelque chose que je choisis (par exemple 5 ou 6)? –
Vous pouvez écrire un déclencheur pour le faire. Ou modifiez-le à partir du code d'application avec une mise à jour avant de supprimer le parent auquel il fait référence. –