1. 程式人生 > >MySQL 中用Update觸發器實現修改值

MySQL 中用Update觸發器實現修改值

原來寫一篇在 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 | 有更新 |
+----+--------+
*/