【转】MYSQL入门学习之十一:触发器的基本操作

转载地址: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    |          |
[email protected] | 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    |          |
[email protected] | 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    |          |
[email protected] | latin1               |
latin1_swedish_ci    | latin1_swedish_ci  |

+---------+--------+---------+------------------------------------------------------------------------------------------

二、注意事项

1、只有表支持触发器,视图及临时表都不支持;

2、每个表最多支持6个触发器;

3、单一触发器不能与多个事件或多个表关联;

4、对于INSERT而言,新增的行用NEW来表示,行中的每一列的值,用NEW.列名来表示;

对于DELETE而言,删除的行用OLD来表示;

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

【转】MYSQL入门学习之十一:触发器的基本操作,布布扣,bubuko.com

时间: 2024-10-10 06:33:24

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

【转】MYSQL入门学习之三:全文本搜索

转载地址:http://www.2cto.com/database/201212/173873.html 一.理解全文本搜索 www.2cto.com 1.MyISAM支持全文本搜索,而InnoDB不支持. 2.在使用全文本搜索时,MySQL不需要分别查看每个行,不需要分别分析和处理每个词.MySQL创建指定列中各词的一个索引,搜索可以针对这些词进行.这样MySQL可以快速有效地决定哪些词匹配,哪些词不匹配,它们匹配的频率,等等. 二.使用全文本搜索 1.为了进行全文本搜索,必须索引被搜索的列,

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

转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能  www.2cto.com 函数能分返回字符串,整数或实数; 可以定义一次作用于一行的简单函数,或作用于多行的组的集合函数; 二.基本操作 1.创建自定义函数 CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL} BEGIN //函数实现的语句 END; aggre

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

1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to_select指出你想要看到的内容,可以是列的一个表,或*表示"所有的列". which_table指出你想要从其检索数据的表. WHERE子句是可选项,如果选择该项,conditions_to_satisfy指定行必须满足的检索条件. 2.0 在我的博文"MySQL入门学习(八

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

一:索引 索引是创建在数据库表上,其作用是提高对表中数据的查询速度. 假设数据库中有一张1000条记录的表格,如果没有创建索引的话,用户想通过查询条件查询,实际上是把整个数据库中1000条记录都读取一遍,满足查询条件的就加入结果集中,这样效率很低,如果表中创建了针对查询条件字段的索引,查询的时候会立即找到满足条件的记录加入结果集,不需要遍历过程,这样大大提高了数据库查询效率. 创建索引虽然提高了数据库表格的查询效率,但是也增加了数据库维护速度,因为索引需要占用物理空间,其次每次用户插入,更改,删

Re:从零开始的MySQL入门学习

Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器.由于这四个软件都是免费或开放式源码软件,因此使用这种不用花一分钱(人工成本除外)就可以建立起一个稳定.免费的网站系统,被业界称为“LAMP”组合.今天,我们就讲讲MySQL数据库的安装和简单应用. [安装MySQL] 首先,挂载光盘,创建本地yum源. 清空yum缓存,安装MySQL服务 提示:上面那张截图的具体指令是: [[email protected]  /]#  yum  insta

mysql入门学习

一.操作数据库 1.创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name   [create_specification [, create_specification] ...] create_specification:    [DEFAULT] CHARACTER SET charset_name | [DEFAULT] COLLATE collation_name ~创建一个名称为mydb1的数据库. CREATE DATABASE mydb1; ~

MySQL入门学习笔记之存储引擎

1.什么是存储引擎? 存储引擎就是指表的类型,数据库的存储引擎决定了表在计算机中的存储方式.而存储引擎的概念是MySQL的特点,是一种插入式的存储引擎概念.MySQL数据库中的表可以使用不同的方式存储. 2.如何查看MySQL 中支持的存储引擎? 在命令行中输入: SHOW ENGINES; mysql>SHOW ENGINES; +--------------------+---------+---------------------------------------------------

【转】MYSQL入门学习之六:MYSQL的运算符

转载地址:http://www.2cto.com/database/201212/175862.html 一.算术运算符 1.加  www.2cto.com mysql> select 1+2; +-----+ | 1+2 | +-----+ |   3 | +-----+ 2.减 mysql> select 1-2; +-----+ | 1-2 | +-----+ |  -1 | +-----+ 3.乘 mysql> select 2*3; +-----+ | 2*3 | +-----

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

转载地址:http://www.2cto.com/database/201212/177380.html 存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合.可将其视为批文件,虽然它们的作用不仅限于批处理.  www.2cto.com 使用存储过程需要MySQL5及以后的版本支持. 一.为什么要使用存储过程 通过把处理封闭在容易使用的单元中,简化复杂的操作: 将一系列处理步骤放到同一存储过程中,保证了数据的完整性和操作的安全性: 简化对变更的管理: 提高性能.使用存储过程比