在MySQL Server里面也就是对某一个表的一定的操作,触发某种条件(Insert,Update,Delete 等),从而自动执行的一段程序。从这种意义上讲触发器是一个特殊的存储过程,用与更新危险提示
表1 主表
DROP TABLE IF EXISTS `sih_main`;
CREATE TABLE `sih_warning` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`uid` int(10) NOT NULL,
`amount` decimal(20,4) NOT NULL DEFAULT '0.0000' COMMENT '金额',
`create_time` int(10) NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1122 DEFAULT CHARSET=utf8mb4 COMMENT='驳回用户表';
表2:用户主表变化后跟随操作
DROP TABLE IF EXISTS `sih_warning`;
CREATE TABLE `sih_warning` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`uid` int(10) NOT NULL,
`after_amount` decimal(20,4) NOT NULL DEFAULT '0.0000' COMMENT '变后金额',
`create_time` int(10) NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1122 DEFAULT CHARSET=utf8mb4 COMMENT='驳回用户表';
添加触发器
DROP TRIGGER IF EXISTS sih_afterinsert_on_warning;
CREATE TRIGGER sih_afterinsert_on_warning
AFTER INSERT ON sih_main
FOR EACH ROW
BEGIN
insert into sih_warning(uid,after_amount) values(new.uid,new.amount);
END;
insert into sih_main(`uid`,`amount`,create_time) values(200,250.0000,1587460074);