转载地址:http://www.2cto.com/database/201212/176781.html

触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句):  www.2cto.com

            DELETE;
            INSERT;
            UPDATE;
            使用触发器,需要MySQL5或之后的版本支持。
一、触发器基本操作
1、创建触发器
        创建触发器时,需要给出4条信息:
        唯一的触发器名;(虽然MySQL5允许不同的表上的触发器名称相同,但一般最好不要这么做。)  www.2cto.com  
        触发器关联的表;
        触发器响应的事件;
        触发器何时执行;
        语法结构:
        create trigger trigger_name (BEFORE|AFTER) (delete|update|insert) on table_name
        for each row
        BEGIN
        要触发的sql语句;
        END;
        示例:
[sql] 
mysql> delimiter |  
mysql> create trigger t_trig before insert on t_goods for each row  
    -> begin  
    ->     set NEW.add_date = current_date();  
    -> end;  
    -> |  
mysql> delimiter ;  
mysql> insert into t_goods(id,goods_name,quantity)  
    -> values(1,'apple',50);  
    -> |  
mysql> select * from t_goods;  
    -> |  
+------+------------+----------+------------+  
| id   | goods_name | quantity | add_date   |  
+------+------------+----------+------------+  
|    1 | apple      |       50 | 2012-12-12 |  
+------+------------+----------+------------+  
 
2、删除触发器
        DROP TRIGGER [schema_name.]trigger_name;  
        示例:
        mysql> DROP TRIGGER t_trig;
3、查看触发器
        SHOW TRIGGERS [ FROM DBNAME [ like '' ] ];
        示例:
[sql]   www.2cto.com  
mysql> show triggers;  
+---------+--------+---------+------------------------------------------------------------------------------------------  
| Trigger | Event  | Table   | Statement  
+---------+--------+---------+------------------------------------------------------------------------------------------  
| t_trig  | INSERT | t_goods | begin  
    set NEW.add_date = current_date();  
end | BEFORE | NULL    |          | root@localhost | latin1               | latin1_swedish_ci    | latin1_swedish_ci  |  
+---------+--------+---------+------------------------------------------------------------------------------------------  
mysql> show triggers from test;  
+---------+--------+---------+------------------------------------------------------------------------------------------  
| Trigger | Event  | Table   | Statement  
+---------+--------+---------+------------------------------------------------------------------------------------------  
| t_trig  | INSERT | t_goods | begin  
    set NEW.add_date = current_date();  
end | BEFORE | NULL    |          | root@localhost | latin1               | latin1_swedish_ci    | latin1_swedish_ci  |  
+---------+--------+---------+------------------------------------------------------------------------------------------  
mysql> show triggers from test like 't%';  
+---------+--------+---------+------------------------------------------------------------------------------------------  
| Trigger | Event  | Table   | Statement  
+---------+--------+---------+------------------------------------------------------------------------------------------  
| t_trig  | INSERT | t_goods | begin  
    set NEW.add_date = current_date();  
end | BEFORE | NULL    |          | root@localhost | latin1               | latin1_swedish_ci    | latin1_swedish_ci  |  
+---------+--------+---------+------------------------------------------------------------------------------------------  
 
二、注意事项
1、只有表支持触发器,视图及临时表都不支持;
2、每个表最多支持6个触发器;
3、单一触发器不能与多个事件或多个表关联;
4、对于INSERT而言,新增的行用NEW来表示,行中的每一列的值,用NEW.列名来表示;
        对于DELETE而言,删除的行用OLD来表示;

对于UPDATE而言,更新前的行用OLD来表示,更新后的行用NEW来表示

【转】MYSQL入门学习之十一:触发器的基本操作的更多相关文章

  1. 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列

    1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...

  2. 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

    1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...

  3. 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装

    1.0 我的操作系统是CentOS Linux release 7.6.1810  (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...

  4. 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装

    1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...

  5. 【转】MYSQL入门学习之十:视图的基本操作

    转载地址:http://www.2cto.com/database/201212/176775.html 一.视图的基本介绍  www.2cto.com           视图是虚拟的表.与包含数据 ...

  6. 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装

    1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...

  7. MYSQL数据库学习----索引和触发器

    一:索引 索引是创建在数据库表上,其作用是提高对表中数据的查询速度. 假设数据库中有一张1000条记录的表格,如果没有创建索引的话,用户想通过查询条件查询,实际上是把整个数据库中1000条记录都读取一 ...

  8. 【转】MYSQL入门学习之十三:自定义函数的基本操作

    转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能  www.2cto.com           函数能分 ...

  9. 【转】MYSQL入门学习之十二:存储过程的基本操作

    转载地址:http://www.2cto.com/database/201212/177380.html 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合.可将其视为批文件,虽 ...

随机推荐

  1. SQL Server中使用正则表达式

    SQL Server 2005及以上版本支持用CLR语言(C# .NET.VB.NET)编写过程.触发器和函数,因此使得正则匹配,数据提取能够在SQL中灵活运用,大大提高了SQL处理字符串,文本等内容 ...

  2. 解决本地tomcat服务器内存不足问题

    2014-6-25 9:47:48 org.apache.coyote.http11.Http11Processor process严重: Error processing requestjava.l ...

  3. jsp中${param.user}不解析,原样输出。

    没加<%@ page isELIgnored="false"%>

  4. JSTL 核心标签库

    SP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签. 除了这些,它还提供了 ...

  5. Tomcat 部署:工程下 META-INF 目录下的 Context.xml

    tomcat 在META-INF 文件夹中添加context.xml,使项目自动应用更新文件 Meta-inf文件夹下新建context.xml. <Context path="/FU ...

  6. Python条件循环判断

    1.条件判断语句 Python中条件选择语句的关键字为:if .elif .else这三个.其基本形式如下: 1 2 3 4 5 6 7 8 9 age_of_cc = 27   age = int( ...

  7. Android -- FragmentTabHost实现微信底部切换

    1,在商城类的项目中我们开始一个项目的时候经常出现这样的需求,如下图所示: 下面使用户可以切换的模块,上面是对应的模块的详细内容,实现这个效果有很多方式,可以使用radiobutton+fragmen ...

  8. 直关的sql 联级更新语句

    在sql-server中用这种写法最直观:UPDATE a SET a.c = b.c FROM table1 ainner join table2 b on b.a=a.aWHERE a.c is ...

  9. html5文件上传

    <!DOCTYPE html><html><head> <title>Html5 Ajax 上传文件</title></head> ...

  10. EBS fnd_global.apps_initialize

    原型:fnd_global.apps_initialize(user_ID,                                             Responsibility_id ...