Je rencontre des difficultés avec les contraintes de clé étrangère. J'ai trois tables:Contraintes FK de table de mappage Mysql
Features
ID PK AUTO_INC
Title VARCHAR
Subscriptions
ID PK AUTO_INC
Title VARCHAR
Subscriptionfeatures
ID PK AUTO_INC
feature_id INT (index)
subscription_id INT (index)
Quand j'ai les documents suivants
Features
1 Testfeature
Subscriptions
1 Testsubscription
je peux insérer l'enregistrement suivant dans Subscriptionfeatures lors de la définition d'une contrainte FK comme suit
ALTER TABLE subscriptionfeatures ADD CONSTRAINT FK_feature FOREIGN KEY (feature_id) REFERENCES features(id);
Subscriptionfeatures
x 1 1 => ok
Mais je peux ne pas insérer l'enregistrement identique lors de l'ajout d'une clause ON DELETE CASCADE à la contrainte FK, mais je dois administrer je ne comprends pas la raison de son refus!
ALTER TABLE subscriptionfeatures ADD CONSTRAINT FK_feature FOREIGN KEY (feature_id) REFERENCES features(id) ON DELETE CASCADE;
Subscriptionfeatures
x 1 1 => fails
Une aide sur ce point serait grandement appréciée!
Si vous regardez dans ma requête, vous verrez que j'ai d'abord ajouté les valeurs, puis créé la contrainte. Cela signifie que les données ont existé. Pourriez-vous s'il vous plaît poster toute la séquence de commande qui échoue et la description exacte de l'erreur? – Quassnoi
J'ai négligé cela. J'ai fait d'autres tests. Finalement, il semble que c'est ma propre erreur stupide! Je testais en utilisant Emma pour insérer les enregistrements et ne pas appuyer sur Entrée après avoir inséré le dernier identifiant dans une nouvelle ligne, donc quand soumettre la valeur n'a pas été définie dans la requête sql. Appréciez votre aide! –