个性化阅读
专注于IT技术分析

MySQL触发器

本文概述

在MySQL中, 也可以创建触发器。可以设置6种触发器:-

  1. 插入之后/之前
  2. 更新后/之前
  3. 删除后/删除前

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并插入记录。

MySQL触发器

第2步:创建另一个表, 例如, student1, 不要插入记录。

MySQL触发器

步骤3:现在创建AFTER INSERT触发器

查询;

在将”行”插入” student”之后, 将触发器插入” student_insert”, 以将每行插入到student2值中(null, new.id, ” insertted”, NOW());

MySQL触发器

步骤4:创建触发器后, 现在再次将记录插入到Student表中, 它将反映在student2表上。

i)插入学生表ID 6

MySQL触发器

ii)反映在学生2中。

MySQL触发器

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并插入记录。

MySQL触发器

步骤2:创建另一个表, 例如, student1并插入记录。

MySQL触发器

步骤3:现在创建AFTER UPDATE触发器

查询:

为每个行更新创建触发器’student_update’之后对’student’进行更新student2 SET name = new.name其中id = id;

MySQL触发器

步骤4:创建触发器后, 现在再次更新学生表中的记录, 它将反映在学生2表上。

i)更新学生表ID 6

MySQL触发器

ii)反映在学生2中。

MySQL触发器

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并插入记录。

MySQL触发器

步骤2:创建另一个表, 例如, student1并插入记录。

MySQL触发器

步骤3:现在创建AFTER DELETE触发器

查询:

在从学生2的每个学生行中删除”学生”之后, 在”学生”中删除后创建触发器’student_delete’。

MySQL触发器

步骤4:创建触发器后, 现在再次删除学生表中的记录, 它将反映在学生2表上。

我)删除学生表ID 6

MySQL触发器

ii)反映在学生2中。

MySQL触发器

删除触发器

在MySQL中, 触发器也可以删除。当触发器删除时, 将从数据库中将其删除。

语法

Drop Trigger[ IF EXISTS ] Trigger_name;

参数

Trigger_name:要删除的触发器的名称

例子1

drop Trigger student_update;
MySQL触发器

赞(0)
未经允许不得转载:srcmini » MySQL触发器

评论 抢沙发

评论前必须登录!