标签:用户 update mysql 触发器 访问 tom str exists tac 修改
触发器是用户定义在关系表上的一类由事件驱动的数据库对象,也是一种保证数据完整性的方法。触发器一旦定义,无须用户调用,任何对表的修改操作均为数据库服务器自动激活相应的触发器
-> create trigger mysql_test.customers_insert_trigger after insert ->on mysql_test.customers for each row set @str = ‘one customer added‘ //@str表示用户变量
//这里表示有数据插入时 str变为one customers added
->insert into customers ->values(1001,"张三",19,"男"); ->select @str; //插入一条数据,改变了用户变量的值,我们应该直接查看用户变量,而不是原表
drop trigger if exists mysql_test.customers; //删除一个触发器
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 = ‘曾伟‘;
标签:用户 update mysql 触发器 访问 tom str exists tac 修改
原文地址:https://www.cnblogs.com/cheneyboon/p/11406135.html