Cet article présente principalement l'explication détaillée et des exemples simples des déclencheurs MySQL. Les amis dans le besoin peuvent se référer aux
Exemples simples de déclencheurs MySQL
Syntaxe
CREATE TRIGGER
{ AVANT | APRÈS } -- Déclencheur Il y a une exécution. réglage de l'heure : il peut être réglé avant ou après que l' événement se produise.
{ INSERT | UPDATE | DELETE } --Vous pouvez également définir les événements déclenchés : ils peuvent l'être lors de l'exécution d'une insertion, d'une mise à jour ou d'une suppression. gâchette moyenne.
ON FOR EACH ROW --Intervalle d'exécution du déclencheur : la clause FOR EACH ROW notifie au déclencheur d'effectuer une action toutes les deux lignes au lieu d'une fois pour toute la table. Instruction SQL du déclencheur > --Le déclencheur contient l'instruction SQL à déclencher : l'instruction ici peut être n'importe quelle instruction légale, y compris les instructions composées, mais ici les instructions sont soumises aux mêmes restrictions que la fonction . --Vous devez disposer d'autorisations considérables pour créer un déclencheur (CREATE TRIGGER), si vous êtes déjà un utilisateur root, cela suffit. Ceci est différent du standard SQL.
Exemple t_afterinsert_on_tab1 exemple2 : 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! --Le déclencheur appartient à une certaine table : lorsqu'une insertion, une mise à jour ou une suppression est effectuée sur cette table. L'opération provoque l'activation du déclencheur. Nous ne pouvons pas organiser deux déclencheurs pour le même événement dans la même table.
DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
tab1_id varchar(11)
);
DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2(
tab2_id varchar(11)
);
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;
CREATE TRIGGER t_afterinsert_on_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(tab2_id) values(new.tab1_id);
END;
INSERT INTO tab1(tab1_id) values('0001');
SELECT * FROM tab1;
SELECT * FROM tab2;
DROP TRIGGER IF EXISTS t_afterdelete_on_tab1;
CREATE TRIGGER t_afterdelete_on_tab1
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
delete from tab2 where tab2_id=old.tab1_id;
END;
DELETE FROM tab1 WHERE tab1_id='0001';