本文概述
在MySQL中, 也可以创建触发器。可以设置6种触发器:-
- 插入之后/之前
- 更新后/之前
- 删除后/删除前
1.插入之前/之后触发
在MySQL中, 还可以创建AFTER / BEFORE触发器。 AFTER / BEFORE触发器意味着触发器将在插入记录后调用。
语法
CREATE TRIGGER trigger_name
AFTER/BEFORE INSERT
ON table_name FOR EACH ROW
BEGIN
--variable declarations
--trigger code
END;
参数
trigger_name:要创建的触发器的名称。
插入后/插入前:在插入查询执行之前或之后, 它指向触发器。
table_name:在其中创建触发器的表的名称。
例子
步骤1:创建一个表格, 例如, student并插入记录。
第2步:创建另一个表, 例如, student1, 不要插入记录。
步骤3:现在创建AFTER INSERT触发器
查询;
在将”行”插入” student”之后, 将触发器插入” student_insert”, 以将每行插入到student2值中(null, new.id, ” insertted”, NOW());
步骤4:创建触发器后, 现在再次将记录插入到Student表中, 它将反映在student2表上。
i)插入学生表ID 6
ii)反映在学生2中。
2.更新后/触发前
在MySQL中, 还可以创建AFTER / BEFORE UPDATE触发器。 AFTER / BEFORE UPDATE触发器意味着触发器将在记录更新之后/之前调用。
语法
CREATE TRIGGER trigger_name
AFTER/BEFORE UPDATE
ON table_name FOR EACH ROW
BEGIN
--variable declarations
--trigger code
END;
参数
trigger_name:要创建的触发器的名称。
更新后:它指示执行触发器更新查询。
table_name:在其中创建触发器的表的名称。
例子
步骤1:创建一个表格, 例如, student并插入记录。
步骤2:创建另一个表, 例如, student1并插入记录。
步骤3:现在创建AFTER UPDATE触发器
查询:
为每个行更新创建触发器’student_update’之后对’student’进行更新student2 SET name = new.name其中id = id;
步骤4:创建触发器后, 现在再次更新学生表中的记录, 它将反映在学生2表上。
i)更新学生表ID 6
ii)反映在学生2中。
3.删除之前/之后触发
在MySQL中, 还可以创建AFTER / BEFORE DELETE触发器。 AFTER / BEFORE DELETE触发器意味着触发器将在删除记录之后/之前调用。
语法
CREATE TRIGGER trigger_name
AFTER/BEFORE DELETE
ON table_name FOR EACH ROW
BEGIN
--variable declarations
--trigger code
END;
参数
trigger_name:要创建的触发器的名称。
AFTER / BEFORE DELETE:在执行删除查询之前/之后指向触发器。
table_name:在其中创建触发器的表的名称。
例子
步骤1:创建一个表格, 例如, student并插入记录。
步骤2:创建另一个表, 例如, student1并插入记录。
步骤3:现在创建AFTER DELETE触发器
查询:
在从学生2的每个学生行中删除”学生”之后, 在”学生”中删除后创建触发器’student_delete’。
步骤4:创建触发器后, 现在再次删除学生表中的记录, 它将反映在学生2表上。
我)删除学生表ID 6
ii)反映在学生2中。
删除触发器
在MySQL中, 触发器也可以删除。当触发器删除时, 将从数据库中将其删除。
语法
Drop Trigger[ IF EXISTS ] Trigger_name;
参数
Trigger_name:要删除的触发器的名称
例子1
drop Trigger student_update;
评论前必须登录!
注册