Bonjour, J'utilise la base de données mysql5 innoDB. Je souhaite supprimer de force les données de la ligne parente et de ses données de table enfant associées. Comment puis je faire ça. Est-ce que quelqu'un peut m'aider.Comment supprimer des données de la table parent dans mysql5?
Répondre
Si vous utilisez innodb, vous pouvez utiliser des CONTRAINTES de clé étrangère pour la suppression en cascade lorsque vous supprimez la ligne parent, les enfants seront également supprimés.
Voir plus http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
Une autre approche consiste à utiliser la syntaxe multi-tables à supprimer. Regardez http://dev.mysql.com/doc/refman/5.1/en/delete.html
approche finale utilise déclencheur sur après action de suppression. Regardez http://dev.mysql.com/doc/refman/5.1/en/trigger-syntax.html
Vous pouvez également utiliser des instructions de suppression séquentielle, mais dans ce cas, vous devez utiliser transaction. Note: celui-ci ne fonctionne qu'avec les tables innodb.
Deux suppressions de suite ferait l'affaire:
delete from ChildTable where ParentID = ?
delete from ParentTable where ID = ?
Si vous utilisez la contrainte de clé étrangère, vous pouvez utiliser suppression en cascade article tout en créant une table enfant pour supprimer une ligne de parent table, il supprimera également la ligne de clé primaire correspondante de la table enfant.
Si vous souhaitez supprimer la ligne uniquement de la table parent et non la ligne de clé primaire correspondante de la table enfant, utilisez lors de la suppression de cascade null Clause lors de la création de la table enfant.
Par exemple: créer une table parent appelé "étudiant", et table enfant appelée "bibliothèque"
create table student(sno integer(5) primary key,sname varchar(20));
insert into student values(1,"suman");
insert into student values(2,"sai");
insert into student values(3,"saaaa");
create table library(sno integer(5) references primary key(sno) on delete cascade,book_name varchar(20));
insert into student values(1,"c");
insert into student values(2,"JAVA");
insert into student values(3,"ORACLE");
maintenant supprimer la deuxième rangée de table parent
delete from student where sno=2;
il supprimera la ligne correspondante (2 JAVA) de la table enfant. Parce que vous utilisez la clause "on delete cascade" uniquement. Si vous utilisez delete cascade null, il supprimera uniquement la ligne (2 Sai) de la table parente.
:) :) :) :) :) :) :) :) :) :)
- 1. Comment supprimer une ligne de la table parent sans supprimer une ligne de la table enfant
- 2. Comment supprimer une ligne de la table parent sans supprimer une ligne de la table enfant?
- 3. dans mysql5
- 4. jQuery: supprimer la table parent entière
- 5. Comment supprimer toutes les procédures d'une base de données dans mysql5
- 6. Comment supprimer des données en double de la table SQL
- 7. Supprimer des lignes dans la table de données jsf
- 8. json dans mysql5 par php5
- 9. Glisser des données d'une table vers une autre table sans les supprimer dans la première table
- 10. Tout supprimer de la table avant l'écriture des données XML dans la table
- 11. jQuery - supprimer la ligne parent de l'élément
- 12. Comment supprimer des données de deux tables dans la requête
- 13. Comment sélectionner des données complexes à partir d'une table et les supprimer de la même table
- 14. supprimer des cellules dans la table Voir
- 15. Comment supprimer des lignes de la table sql
- 16. Réduire la hauteur de la table parent si la table des enfants réduit dans IE
- 17. Comment faire pour supprimer des doublons dans la table MySQL
- 18. Utilisation de la récurrence dans la suppression des relations parent et enfant dans la table mysql
- 19. Comment supprimer l'élément parent?
- 20. Comment connecter MySQL5 avec VB6.0 en codant?
- 21. comment supprimer de la table multiple
- 22. Quelle est la meilleure pratique pour supprimer des données de la table de base de données?
- 23. Comment supprimer les enregistrements de la table?
- 24. Comment supprimer un enregistrement de la table?
- 25. Comment supprimer des données dans mysql DB de la table td en utilisant ajax?
- 26. Comment supprimer des lignes de table (sauf la première ligne) d'une table de remplissage?
- 27. Obtention de mesures de la table parent à l'aide des dimensions de la table enfant
- 28. Insérer des données auto-référencées dans la table de copie
- 29. Comment écrire ce genre de requête dans mysql5?
- 30. Supprimer parent DIV
Ceci est l'approche pour tous les moteurs de table qui ne supportent pas 'keys' étranger – ty812
Si un moteur de table ne support des clés étrangères, j'utiliserais un trigger, de cette façon je n'ai pas à y penser. – Johan