Mysql
 sql >> Base de données >  >> RDS >> Mysql

Je veux un déclencheur pour SUPPRIMER de 2 tables dans MySQL

Supprimer de deux tables à la fois avec un déclencheur :

Les déclencheurs sont utilisés pour appliquer l'intégrité des données dans les tables. Vous pouvez utiliser des déclencheurs pour supprimer de n'importe quel nombre de tables à la fois.

Avant d'initialiser les déclencheurs, nous devons modifier temporairement l'opérateur de délimitation mysql car les déclencheurs utilisent le point-virgule ; opérateur pour spécifier plusieurs commandes sql dans le déclencheur.

Étape 1 Modifier le délimiteur actuel :

delimiter $$

Étape 2 Créer un déclencheur :

CREATE TRIGGER `blog_before_delete`     
  AFTER DELETE ON `blog`     
  FOR EACH ROW     
BEGIN
  DELETE FROM blog_tags where blogid = OLD.id;
  DELETE FROM blog_comments where blogid = OLD.id;
END
$$

Étape 3 Restaurer le délimiteur précédent :

delimiter ;

Explication :

OLD est un mot-clé intégré et fait référence à la ligne du tableau de blog que nous supprimons. Mysql exécute le déclencheur blog_before_delete chaque fois que nous supprimons une entrée dans la table de blog. Si le déclencheur échoue, la suppression est annulée. Cela permet d'assurer atomicité, cohérence, isolation et durabilité dans notre base de données.