J'ai défini l'intégrité de la clé étrangère dans une table. Mais je suis capable de supprimer des données de la table principale, qui est la référence dans la table enfant .. Quel serait le problème En fait, il devrait dire une erreur sur la suppression comme toutes les données de table référencées doivent être supprimés.contraintes de clé étrangère mysql
Répondre
Avez-vous spécifié ON SUPPRIMER CASCADE? quand vous avez créé votre FK? Je ne sais pas quel moteur vous utilisez soit
exemple
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;
Plus ici http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
les deux tables doivent être des tables InnoDB, et la performance de innodb est inférieure à myisam –
En fait, j'ai créé la table clairement et j'ai des données maintenant. Voulez-vous dire que j'ai besoin de recréer toute la table pour configurer la clé étrangère. – ASD
Les contraintes de clé étrangère sont présentes. MySQL ne les applique pas à moins que le moteur de stockage soit défini sur InnoDB. Vous pouvez faire un "ALTER TABLE [nom de la table] ENGINE = InnoDB" (http://dev.mysql.com/doc/refman/5.1/en/alter-table.html) au lieu de recréer les tables. –
mysql ne le faites pas pour vous,
vous devez déclarer déclencheur sur l'action de suppression
avant suppression exemple de déclenchement:
http://www.java2s.com/Code/Oracle/Trigger/Createabeforedeletetrigger.htm
- 1. Contraintes de clé étrangère MySQL, cascade delete
- 2. Contraintes de clé étrangère Innodb
- 3. Ignorer les contraintes de clé étrangère MySQL dans PHP
- 4. Contraintes de clé étrangère conditionnelles SQL Server
- 5. MySQL avec des contraintes de suppression logicielle, de clé unique et de clé étrangère
- 6. MySQL contrainte de clé étrangère disparaissant
- 7. Problème de clé étrangère MySQL
- 8. concept de clé étrangère mysql
- 9. MySQL change le type de clé étrangère
- 10. éditer l'erreur de requête avec des contraintes de clé étrangère
- 11. MySQL clé étrangère à une autre clé étrangère
- 12. Mise à jour, contraintes de clé étrangère et null
- 13. SQL 2008 - Contraintes de clé étrangère dans la vue INFORMATION_SCHEMA
- 14. doute clé étrangère dans MYSQL
- 15. Verrouillage de ligne dans MySQL InnoDb avec des contraintes de clé étrangère et des index appliqués?
- 16. Comment comprendre les contraintes de clé étrangère d'une table MySQL en utilisant Doctrine 1.1?
- 17. Ajouter des contraintes de clé étrangère aux tables existantes dans Ruby on Rails (MySQL)
- 18. Contrainte de clé étrangère MySQL - Colonne entière
- 19. MySQL: Insérer si la clé étrangère existe
- 20. Clé étrangère à plusieurs colonnes dans MySQL?
- 21. Référence clé étrangère dans mysql innodb
- 22. MySQL: comment ajouter une clé étrangère
- 23. MySQL, la contrainte de clé étrangère ne fait aucune différence
- 24. mysql export sql dump alphabétiquement, ce qui provoque une erreur de contraintes de clé étrangère lors de l'importation
- 25. Contrainte de clé étrangère (complexe?)
- 26. Est-il possible de supprimer toutes les contraintes de clé étrangère sur une table à la fois dans mySQL 5?
- 27. Contraintes FK de table de mappage Mysql
- 28. MYSQL: Création d'une liste d'entiers (ID) pouvant utiliser des contraintes de clé étrangère pour chaque élément entier?
- 29. Qu'est-ce qu'un moyen facile de lister les contraintes de clé étrangère dans une MDB?
- 30. Empêche la doctrine 1 de créer des contraintes de clé étrangère
Quel moteur de stockage utilisez-vous? "Pour les moteurs de stockage autres qu'InnoDB, le serveur MySQL analyse la syntaxe FOREIGN KEY dans les instructions CREATE TABLE, mais ne l'utilise pas ou ne le stocke pas." (MySQL Reference Manual à http://dev.mysql.com/doc/refman/5.1/en/ansi-diff-foreign-keys.html) –
Le moteur storge est MOTEUR = MyISAM – ASD