MySQL 中用Update触发器实现修改值

血红的双手。 提交于 2019-11-29 08:42:27

原来写一篇在 SQL Server 中用Update 触发器修改值的博客:

https://blog.csdn.net/yenange/article/details/85126707

今天又碰到有个贴子里希望用Update触发器修改值, 区别比较大, 记录下来留底:

##注意点:
## 1. 在客户端中创建触发器,必须使用 delimiter $$
## 2. 只能用 before 触发器
## 3. 触发器中不能用 update ,只能用 set
drop table if exists test;
create table test(
	id int primary key,
	flg nvarchar(20)
);
insert into test values(1,'');
insert into test values(2,'');

drop trigger if exists trig_test_update;
delimiter $$
CREATE TRIGGER `trig_test_update`
before  update  on `test` for each row
BEGIN
  set new.flg='有更新';
END;
$$

update test set flg='a';

select * from test;
/*
+----+--------+
| id | flg    |
+----+--------+
|  1 | 有更新 |
|  2 | 有更新 |
+----+--------+
*/

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!