zoukankan      html  css  js  c++  java
  • MySQL入门很简单-触发器

    1、触发器是由事件来触发某个操作,这些事件包括insert语句、update语句和delete语句。当数据库系统执行这些事件时,会激活触发器执行相应操作。MySQL从5.0.2开始支持触发器。使用触发器可以保证某些操作之间的一致性。

    2、创建一个执行语句的触发器

    create trigger 触发器名 before|after 触发事件 on 表名 for each row 执行语句;

    before和after参数指定触发器执行的时间;

    触发事件包括insert、update和delete;

    for each row表示任何一条记录上的操作满足触发条件都会触发触发器;

    执行语句指触发器被触发后执行的程序

    create trigger dept_trig1 before insert on department for each row insert into trigger_time values(now());

    3、创建多个执行语句的触发器

    create trigger 触发器名 before|after 触发事件 on 表名 for each row begin 执行语句列表 end;

    一般情况下,MySQL默认以';'结束执行语句。在创建触发器过程中需要用到该符号。在执行语句列表也用';'分隔执行语句,因此可以用delimiter语句。

    delimiter &&

    create trigger dept_trig2 after delete

    on department for each row

    begin

    insert into trigger_time values('21:01:01');

    insert into trigger_time values('22:01:01');

    end

    &&

    delimiter;

    MySQL中,一个表在相同触发时间的相同触发事件只能创建一个触发器。如触发事件insert,触发时间为after的触发器只有一个。

    4、查看触发器

    指查看数据库中已存在的触发器的定义、状态和语法等信息。查看方法包括show triggers语句和查询information_schema数据库下的triggers表等。

    show triggers G //查看所有的触发器,不适合触发器很多的情况

    select * from information_schema.triggers;

    select * from information_schema.triggers where trigger_name='触发器名';

    5、MySQL中,触发器执行的顺序是before触发器、表操作(insert、update和delete)和after触发器

    create trigger before_insert before insert on department for each row insert into trigger_test values(null, "before_insert");

    create trigger after_insert before insert on department for each row insert into trigger_test values(null, "after_insert");

    激活触发器时,对触发器的执行语句存在一些限制。如,触发器中不能包含start transaction、commit或rollback等关键词也不能包含call语句。

    在触发器执行过程中,任何步骤出错都会阻止程序向下执行,对于普通表来说,已经更新过的记录不能回滚,更新后的数据将继续保留在表中。

    6、删除触发器

    drop trigger 触发器名。

    触发器名参数如果指指定名称会在当前数据库下查找该触发器,如果找到就删除。如果指定数据库,数据库系统会到指定的数据库下去查找触发器。

    如果不再需要某触发器,一定要将该触发器删除。

  • 相关阅读:
    ARM应用笔记网址和常见问题
    ARM处理器中断处理的编程实现(转)
    altera_avalon_pio_regs.h中的函数意义
    keil 启动代码at91sam9260
    转载:"IF :DEF: EN_CRP"这一句是什么意思啊?
    Realview MDK中启动代码的配置详解
    转载 网络上的8051 free IP core资源
    keil下ARM启动代码分析视频
    SOPC方面的书籍
    NIOS的system.h解读PIO实现的LED灯和key
  • 原文地址:https://www.cnblogs.com/kabi/p/8954751.html
Copyright © 2011-2022 走看看