mysql 触发器详解

触发器

概念

触发器是与表有关的数据库对象,在满足定义条件是触发,并执行触发器中定义的语句集合,触发器的这种特性可以协助应用在数据库端确保数据的完整性。

创建触发器

create trigger_name trigger_time trigger_event on table_name for each row trigger_stmt

trigger_name 触发器的名字

trigger_time 触发时机 (BEFORE、AFTER)

trigger_event 触发事件(INSERT、UPDATE、DELETE)

trigger_stmt 出发的程序体

FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器

对于INSERT语句, 只有NEW是合法的;

对于DELETE语句,只有OLD才合法;

对于UPDATE语句,NEW、OLD可以同时使用。

触发器测试表

CREATE TABLE test_trigger (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) DEFAULT NULL,
value varchar(255) DEFAULT NULL,
test varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=51 DEFAULT CHARSET=utf8mb4;

CREATE TRIGGER insert_before BEFORE INSERT ON test_trigger FOR EACH ROW begin
insert into trigger_result (id,insert_before)values(NEW.id,1);
set NEW.test= 1;
end;

CREATE TRIGGER update_before BEFORE UPDATE ON test_trigger FOR EACH ROW begin
update trigger_result set update_before = 1 where id = new.id;
end;

CREATE TRIGGER update_after AFTER UPDATE ON test_trigger FOR EACH ROW begin
update trigger_result set update_after = 1 where id = new.id;
end;

参考

mysql触发器trigger 实例详解

posted @ 2024-05-16 15:47  snakelis  阅读(53)  评论(0)    收藏  举报