触发器语句MySQL学习笔记15:触发器 触发器语句

每日一贴,今天的内容关键字为触发器语句

    触发器是由事件来触发某个操纵,这些事件括包INSERT语句,UPDATE语句和DELETE语句

 

    

创立触发器

    

创立只有一个执行语句的触发器

CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
ON 表名 FOR EACH ROW 执行语句
其中,触发器名参数指要创立的触发器的名字

    BEFORE和AFTER参数指定了触发执行的间时,在事件之前或是后之

    FOR EACH ROW表现任何一条记录上的操纵满意触发事件都市触发该触发器

mysql> CREATE TRIGGER trig1 AFTER INSERT
    -> ON work FOR EACH ROW
    -> INSERT INTO time VALUES(NOW());
Query OK, 0 rows affected (0.09 sec)
下面创立了一个名为trig1的触发器,一旦在work中有插入动作,就会动自往time内外插入当前间时

 

    

创立有多个执行语句的触发器

CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
    执行语句表列
END
其中,BEGIN与END之间的执行语句表列参数表现须要执行的多个语句,不同语句用分号开隔

    tips:一般情况下,mysql认默是以 ; 作为束结执行语句,与触发器中须要的分行起突冲

   为处理此问题可用DELIMITER,如:DELIMITER ||,可以将束结号符成变||

  当触发器创立完成后,可以用DELIMITER ;来将束结号符成变;

mysql> DELIMITER ||
mysql> CREATE TRIGGER trig2 BEFORE DELETE
    -> ON work FOR EACH ROW
    -> BEGIN
    -> INSERT INTO time VALUES(NOW());
    -> INSERT INTO time VALUES(NOW());
    -> END
    -> ||
Query OK, 0 rows affected (0.06 sec)

mysql> DELIMITER ;
下面的语句中,扫尾将束结号符定义为||,间中定义一个触发器,一旦有满意条件的删除操纵

    就会执行BEGIN和END中的语句,接着用使||束结

    最后用使DELIMITER ; 将束结号符还原

 

    

查看触发器

    

SHOW TRIGGERS语句查看触发器信息

    每日一道理
书,各种各样的书。书,寄托着人类热切的希望;书,蕴含着人类丰富的感悟。提起书,会有说不完的话语……
mysql> SHOW TRIGGERS\G;
*************************** 1. row ***************************
             Trigger: trig1
               Event: INSERT
               Table: work
           Statement: INSERT INTO time VALUES(NOW())
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
结果会示显有所触发器的基本信息

    tips:SHOW TRIGGERS语句没法询查指定的触发器

 

    

在triggers表中查看触发器信息

mysql> SELECT * FROM information_schema.triggers\G
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: person
              TRIGGER_NAME: trig1
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: person
        EVENT_OBJECT_TABLE: work
              ACTION_ORDER: 0
          ACTION_CONDITION: NULL
          ACTION_STATEMENT: INSERT INTO time VALUES(NOW())
结果示显了有所触发器的详细信息,同时,该法方可以询查制订触发器的详细信息
mysql> SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME='trig1'\G
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: person
              TRIGGER_NAME: trig1
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: person
        EVENT_OBJECT_TABLE: work
tips:有所触发器信息都存储在information_schema数据库下的triggers表中

   可以用使SELECT语句询查,如果触发器信息多过,最好通过TRIGGER_NAME段字指定询查

 

    

删除触发器

mysql> DROP TRIGGER trig1;
Query OK, 0 rows affected (0.04 sec)
删除触发器后之最好用使下面的法方查看一遍

    同时,也可以用使database.trig来指定某个数据库中的触发器

    tips:如果不须要某个触发器时必定要将这个触发器删除,以免形成外意操纵

 

文章结束给大家分享下程序员的一些笑话语录: 系统程序员
  1、头皮经常发麻,在看见一个蓝色屏幕的时候比较明显,在屏幕上什幺都看不见的时候尤其明显;
  2、乘电梯的时候总担心死机,并且在墙上找reset键;
  3、指甲特别长,因为按F7到F12比较省力;
  4、只要手里有东西,就不停地按,以为是Alt-F、S;
  5、机箱从来不上盖子,以便判断硬盘是否在转;
  6、经常莫名其妙地跟踪别人,手里不停按F10;
  7、所有的接口都插上了硬盘,因此觉得26个字母不够;
  8、一有空就念叨“下辈子不做程序员了”;
  9、总是觉得9号以后是a号;
  10、不怕病毒,但是很害怕自己的程序;


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值