📅  最后修改于: 2020-11-19 02:22:46             🧑  作者: Mango
在MySQL中,也可以创建触发器。可以设置6种触发器:-
在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_insert”,以便将每个行插入到student2值中(null,new.id,“ insertted”,NOW());
步骤4:创建触发器后,现在再次将记录插入到Student表中,它将反映在student2表上。
i)插入学生表ID 6
ii)反映在学生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中。
在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”; student.id = student1.id;
步骤4:创建触发器后,现在再次删除学生表中的记录,该记录将反映在学生2表上。
我)删除学生表ID 6
ii)反映在学生2中。
在MySQL中,触发器也可以删除。当触发器下降时,将从数据库中将其删除。
Drop Trigger[ IF EXISTS ] Trigger_name;
Trigger_name:要删除的触发器的名称
drop Trigger student_update;