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;
  • 相关阅读:
    [linux] ubuntu gnome 控制面板恢复
    [linux] grub修改
    [erlang] 合并list
    hdu4169 Wealthy Family (树形背包)
    hdu 3899 JLUCPC
    最大流模板
    hdu 4167 User Names
    hdu 2196 Computer (树形DP)
    hdu 1011 Starship Troopers(树形DP)
    hdu 2874 Connections between cities (LCA转RMQ)
  • 原文地址:https://www.cnblogs.com/longshiyVip/p/4628747.html
Copyright © 2011-2022 走看看