zoukankan      html  css  js  c++  java
  • mysql之对触发器的操作

    1. 为什么要使用触发器?

    触发器与函数有些类似,都需要声明,执行。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发,激活,从而实现执行。

    当触发DELETE,INSERT,UPDATE语句的时候会触发激活触发器,其他的SQL语句则不会激活触发器。

    当处理一些业务逻辑,表的数据发生更改时,能够自动进行一些处理,这时就可以使用触发器处理数据库对象。

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

    2. 创建触发器

    2.1 创建有一条执行语句的触发器

    CREATE TRIGGER trigger_name BEFORE | AFTER trigger_event ON table_name FOR EACH    ROW trigger_stmt;

    示例如下:

    CREATE TRIGGER tri_diary BEFORE INSERT ON t_dept FOR EACH ROW INSERT INTO t_diary VALUES(NULL,'t_dept',NOW());

    当向部门表t_dept插入任意一条记录时,就会在插入操作之前向表t_diary中插入当前时间记录。

    2.2 创建包含多条执行语句的触发器

    CREATE TRIGGER trigger_name BEFORE | AFTER trigger_event ON table_name FOR EACH  ROW BEGIN trigger_stmt END;

    示例如下:

    DELIMITER $$
    CREATE TRIGGER tri_diary BEFORE 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 ;

    上面示例中,首先通过"DELIMITER $$"语句设置结束符为"$$",然后再关键字BEGIN和END之间编写执行语句列表,最后通过"DELIMITER ;"语句将结束符号还原成默认结束符";"。需要注意的是DELIMITER和&&以及DELIMITER和;之间要留有空格。

    3. 查看触发器

    3.1 通过SHOW TRIGGERS语句查看触发器

    SHOW TRIGGERS会显示所有触发器的一个列表。

    3.2 通过查看系统表triggers实现查看触发器。

    4. 删除触发器

    DROP TRIGGER trigger_name;
  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/longshiyVip/p/4628747.html
Copyright © 2011-2022 走看看