J'ai une table appelée 'pages'. Chaque page a un type de contenu de texte, de vidéo ou d'image. En fonction du type de contenu, un enregistrement est également inséré dans un tableau de texte, de vidéo ou d'image.Suppression de lignes d'autres tables si la ligne est supprimée de la table principale
Lorsque je supprime une ligne de 'pages', comment puis-je m'assurer que les lignes de l'autre table sont supprimées? Je comprends un peu à propos de CASCADE mais je n'utilise pas de clés étrangères. Au moins pas explicitement.
Mes tableaux ressemblent ci-dessous (je l'ai dépouillé les champs qui ne sont pas pertinents à la question)
Pages: id, titre, contenu
Vidéo: pid (id page), youtube_url
Toute aide serait grandement appréciée.
Non, je ne suis pas en utilisant InnoDB. La seule autre façon que je peux voir de la résoudre est quand une ligne est retirée du parent, vérifiez le type de contenu et supprimez la ligne de la table enfant. Je suis sûr qu'il existe une meilleure solution. –
vous pouvez déclarer le déclencheur, est l'option 2 que j'ai écrit –
+1 - au niveau DB, ce sont les 2 options. Cependant, je suggère, si possible de le faire au niveau d'une application en utilisant une transaction. Les suppressions en cascade et les déclencheurs de bases de données peuvent devenir un cauchemar de maintenance, car ils sont notoirement difficiles à identifier lors du débogage de problèmes. – InSane