【mysql 详解】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 实例详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值