我是靠谱客的博主 生动烤鸡,最近开发中收集的这篇文章主要介绍Mysql - 触发器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。
使用别名OLD和NEW来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。

触发器类型
NEW OLD
INSERT 型触发器
NEW 表示将要或者已经新增的数据
UPDATE 型触发器
OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数据
DELETE 型触发器
OLD 表示将要或者已经删除的数据

 -- 插入的触发器

-- 创建insert的触发器
create trigger tb_user_insert_trigger
    after insert
    on tb_user
    for each row
begin
    insert into user_logs (id, operation, operate_time, operate_id, operate_params)
    values (null, 'insert', now(), new.id,
            concat('插入的数据id:', new.id, ',name:', new.name, ',phone:', new.phone, '......'));

end;

-- 查询所有的触发器
show triggers;
-- 删除触发器
drop trigger tb_user_insert_trigger;

 -- 更新的触发器

create trigger tb_user_update_trigger
    after update
    on tb_user
    for each row
begin
    insert into user_logs (id, operation, operate_time, operate_id, operate_params)
    values (null, 'update', now(), new.id,
            concat('插入之前的数据id:', old.id, ',name:', old.name, ',phone:', old.phone, '......|',
                '插入的数据id:', new.id, ',name:', new.name, ',phone:', new.phone, '......'));
end;

-- 删除的触发器

create trigger tb_user_delete_trigger
    after delete
    on tb_user
    for each row
begin
    insert into user_logs (id, operation, operate_time, operate_id, operate_params)
    values (null, 'delete', now(), new.id,
            concat('删除之前的数据id:', old.id, ',name:', old.name, ',phone:', old.phone, '......'));
end;

最后

以上就是生动烤鸡为你收集整理的Mysql - 触发器的全部内容,希望文章能够帮你解决Mysql - 触发器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部