• MySQL触发器的操作


    数据库对象触发器用来实现由一些表事件触发的某个操作,当执行表事件时,则会激活触发器,从而执行其包含的操作;

    MySQL在触发以下语句时,会自动执行所设置的操作:delete、insert、update语句,其他SQL语句则不会激活触发器;

    触发器的操作包括创建触发器,查看触发器和删除触发器。

    在MySQL中创建触发器通过以下语句实现:

    create trigger trigger_name before|after trigger_event on table_name for each now trigger_STMT;

    before和after参数指定了触发器的执行时间,before是指在触发器事件之前执行触发语句,trigger_event表示触发事件,即触发器执行条件,包含delete、insert、update语句,trigger_STMT表示激活触发器后被执行的语句,如:

    create trigger tri_diary before insert on t_dept for each now insert into t_diary values(null, 't_dept', now()) ;

    当向t_dept插入任意一条记录,都会在此之前向t_diary表插入当前事件记录。

    如需创建多条包含执行语句的触发器,可通过以下命令实现:

    create trigger trigger_name before|after trigger_event on table_name for each row begin insert trigger_STMT end

    举个例子吧,如果需要每次在t_dept插入数据之后向表t_diary插入两条当前时间,语句如下:

    delimiter $$
    create trigger tri_diary2 
        after insert 
            on t_dept for each row 
                begin
                    insert into t_diary values(null, 't_dept', now());
                    insert into t_diary values(null, 't_dept', now());
                end
                $$
    delimiter;

    查看触发器,类似于表和视图,都是通过show等语句实现:

    show triggers ;

    在系统表information_schema表中也可实现查看触发器:

    use information_schema;
    select * from trigger;

    删除触发器:

    drop trigger tri_name;
  • 相关阅读:
    dojo/Deferred类和dojo/promise类的使用
    dojo中类的继承
    c# 委托
    使用Spring Data JPA报错:javax.persistence.TransactionRequiredException: Executing an update/delete query
    服务器重启后,Docker安装的mysql怎么重启?
    IDEA开启Run Dashboard的配置
    Java中List集合去重的几种方式
    关闭迅雷更新到新版本的提示
    XMind8 破解激活教程(win系统)
    连接Oracle报错 ORA-12638: 身份证明检索失败
  • 原文地址:https://www.cnblogs.com/jdwfff/p/10503246.html
Copyright © 2020-2023  润新知