当前位置:Gxlcms > 数据库问题 > MySQL 触发器

MySQL 触发器

时间:2021-07-01 10:21:17 帮助过:15人阅读

->on mysql_test.customers for each row set @str = one customer added //@str表示用户变量
//这里表示有数据插入时 str变为one customers added

 

3、插入一条数据触发触发器

->insert into customers
->values(1001,"张三",19,"");

->select @str;

//插入一条数据,改变了用户变量的值,我们应该直接查看用户变量,而不是原表

 

4、删除触发器

drop trigger if exists mysql_test.customers;

//删除一个触发器

 

5、触发器的种类

  insert 触发器

  delete触发器

  update触发器

insert触发器

在insert触发器代码内,可引用一个名为new(不区分大小写)的虚拟表,来访问被插入的行
在before insert触发器中,new中的值可以被跟新

new即被插入的数据

->create trigger mysql_test.customers_insert2 after insert
->on mysql_test.customers for each row set @str = new.cust_id;
//制定了触发器的触发规则

->insert into customers
->values("1002","李四",22,"男");
//插入一行数据进行触发

->select @str;
//重新查看用户变量,查看是否被触发

delete触发器
在delete触发器代码内,可引用一个名为OLD(不区分大小写)的虚拟表,来访问被删除的行。
OLD中的值全部都是只读的,不能被更新。


->create trigger mysql_test.customers_delete after detele
->on mysql_test.customers for each row set @str = old.name;
//制定触发器规则

->delete from from mysql_test.customers
->where id = 1001;
//对触发器进行触发

->select @str;
//查看触发器
update触发器 = 先delete  后 insert
在update触发器代码内,可引用一个名为OLD(不区分大小写)的虚拟表,来访问update语句执行前的值,也可以引用一个名为new(不区分大小写)的虚拟表来访问跟新后的值。


->create trigger mysql_test.customers_update_trigger before update
->on mysql_test.customers  for each row
->set new.cust_address = OLD.cust_contact;
//创建触发器规则
->update mysql_test.customers set cust_address = 武汉市 ->where cust_name = 曾伟;
->select cust_address from mysql_test.customers ->where cust_name = 曾伟;

 

MySQL 触发器

标签:用户   update   mysql 触发器   访问   tom   str   exists   tac   修改   

人气教程排行