Maison  >  Article  >  base de données  >  Explication détaillée de l'utilisation du déclencheur de suppression MySQL (suppression)

Explication détaillée de l'utilisation du déclencheur de suppression MySQL (suppression)

巴扎黑
巴扎黑original
2017-05-19 15:24:0123815parcourir

Déclencheur DELETE

Le déclencheur est une méthode fournie par le serveur SQL aux programmeurs et aux analystes de données pour garantir l'intégrité des données. Il s'agit d'une procédure stockée spéciale liée à la table. événements. Son exécution n'est pas appelée par un programme ou démarrée manuellement, mais est déclenchée par des événements. Par exemple, elle est activée lorsqu'une table est exploitée (insertion, suppression, mise à jour). Les déclencheurs sont souvent utilisés pour appliquer des contraintes d’intégrité des données et des règles métier. Les déclencheurs peuvent être trouvés dans les dictionnaires de données DBA_TRIGGERS et USER_TRIGGERS. Un déclencheur SQL3 est une instruction qui peut être automatiquement exécutée par le système pour modifier la base de données.

Tutoriels vidéo MySQL associés recommandés : "Tutoriel MySQL"

Les déclencheurs peuvent interroger d'autres tables et contenir des instructions SQL complexes. Ils sont principalement utilisés pour assurer le respect de règles ou d’exigences commerciales complexes. Par exemple : vous pouvez contrôler si de nouvelles commandes peuvent être insérées en fonction du statut actuel du compte du client.

Le déclencheur DELETE s'exécute avant ou après l'exécution de l'instruction DELETE. Vous devez connaître les deux points suivants :

1. Dans le code du déclencheur DELETE, vous pouvez référencer une table virtuelle nommée OLD pour accéder aux lignes supprimées

2. . Toutes les valeurs dans OLD sont en lecture seule et ne peuvent pas être mises à jour. L'exemple suivant montre l'utilisation de OLD pour enregistrer les lignes à supprimer dans une table d'archive :

Entrée :

create trigger deleteorder before delete on orders for each row
begin
insert into archive_orders(order_num,order_date,cust_id)
values(old.order_num,old.order_date,old.cust_id);
end;

Analyse : Ce déclencheur sera exécuté avant la suppression de toute commande. Il utilise une instruction INSERT pour enregistrer les valeurs en OLD (les commandes à supprimer) dans une table d'archives appelée archive_orders (pour utiliser réellement cet exemple, vous devez créer une table appelée archive_orders avec les mêmes colonnes que les commandes).

L'avantage d'utiliser le déclencheur BEFORE DELETE (par opposition au déclencheur APRES DELETE) est que si pour une raison quelconque la commande ne peut pas être archivée, la DELETE elle-même sera abandonnée.

Déclencheur multi-instructions Comme vous pouvez le voir, l'ordre de suppression du déclencheur utilise les instructions BEGIN et END pour marquer le corps du déclencheur. Ce n'est pas nécessaire dans cet exemple, mais cela ne fait pas de mal. L'avantage de l'utilisation du bloc BEGIN END est que le déclencheur peut prendre en charge plusieurs instructions SQL (une à côté d'une dans le bloc BEGIN END).

[Recommandations associées]

1. Tutoriel vidéo gratuit MySQL

2 Explication détaillée du déclencheur d'insertion (insertion) dans MySQL<.>

3.

Introduction aux déclencheurs MySQL et comment créer et supprimer des déclencheurs

4

Tutoriel sur le jeu de caractères MySQL et l'ordre de classement5.

Introduction au jeu de caractères MySQL et à l'ordre de classement

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn