mysql触发器

参考链接 官方文档1 官网文档2

mysql创建触发器可以在表被insert、delete、update的时候触发,表中每行数据被修改一次就会触发一次,并且在sql中可以使用NEW/OLD来分别表示修改之前和之后的数据,并且在创建trigger的时候可以使用after/before分别设置为在修改之前、之后进行操作。下文是例子,由于在创建trigger的时候需要使用’;’因此先使用delimiter修改一下结束符。

DELIMITER $
create trigger tri_stuInsert after insert
on student for each row
begin
declare c int;
set c = (select stuCount from class where classID=new.classID);
update class set stuCount = c + 1 where classID = new.classID;
end$
DELIMITER ;

“在 INSERT 型触发器中,NEW 用来表示将要(BEFORE)或已经(AFTER)插入的新数据;
在 UPDATE 型触发器中,OLD 用来表示将要或已经被修改的原数据,NEW 用来表示将要或已经修改为的新数据;
在 DELETE 型触发器中,OLD 用来表示将要或已经被删除的原数据;
使用方法: NEW.columnName (columnName 为相应数据表某一列名)”

 

同时还可以使用外部插件让trigger触发外部操作,例如调用shell,参考链接1参考链接2

转载请注明来源链接 http://just4fun.im/2017/01/07/mysql-e8-a7-a6-e5-8f-91-e5-99-a8/ 尊重知识,谢谢:)