zoukankan      html  css  js  c++  java
  • MySql:触发器

    触发器

    一、触发器的定义:

      触发器是个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL语句来调用,也不需要手工启动,只要当一个预定的事件发生时,就会被MySQL调用

    二、创建触发器

    总语法:
    CREATE
        [DEFINER = { user | CURRENT_USER }]
        TRIGGER trigger_name trigger_time trigger_event
    ON tbl_name FOR EACH ROW trigger_body
    
    trigger_name:标识触发器的名称,用户自行定义;
    trigger_time:标识触发器的时机,可以指定为before或after 
    trigger_event:标识触发事件,包括INSERT、UPDATE和DELETE
    tbl_name:标识建立触发器的表名,即在那张表上建立触发器
    trigger_body:触发器程序体
    【例】
    
     mysql> create trigger ints_sum before insert on account for each row set
     @sum=@sum+new.amount;

    作用:对插入的amount字段进行求和
    注意:不能少了“@”;

    三、查看触发器

    语法:
    (1)show 语法-----适用与触发器较少情况
    SHOW TRIGGERS [{FROM | IN} db_name]
       [LIKE 'pattern' | WHERE expr]
    {FROM | IN}db_name:标识库名
    LIKE 'pattern' | WHERE expr:标识查询条件
       【例】
    
    mysql> show triggersG;
    *************************** 1. row ***************************
                 Trigger: ints_sum
                   Event: INSERT
                   Table: account
               Statement: set @sum=@sum+new.amount
                  Timing: BEFORE
                 Created: 2018-01-12 08:54:45.25
                sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
                 Definer: root@localhost
    character_set_client: gbk
    collation_connection: gbk_chinese_ci
      Database Collation: utf8_general_ci
    
    (2)使用triggers表查询
    语法:
    mysql> select * from information_schema.triggers where 条件;
    【例】
    
    mysql> select * from information_schema.triggers where trigger_name='INTS_sum'G;

    四、删除触发器

    语法:
    DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name
    schema_name.表示库名
    【例】
    
    mysql> drop trigger ints_sum;
     
  • 相关阅读:
    8bit数据 转换为 16bit数据的四种方法
    可变长度的结构体定义
    【转】typedef和#define的用法与区别
    编程事项
    FreeRTOS不允许在中断服务程序和临界段中执行不确定的性的操作
    低优先级任务在执行过程中高优先级任务在干什么
    使用FreeRTOS在SD卡驱动使用非系统延时导致上电重启不工作的情况
    PMOS 与 NMOS
    keil优化等级设置
    #define用法之一
  • 原文地址:https://www.cnblogs.com/hahayixiao/p/10199216.html
Copyright © 2011-2022 走看看