触发器的作用是在增、删、改操作之前(或之后)自动调用的SQL语句或存储过程。比如为了保持数据的一致性,删除订单记录时,触发删除订单详细记录。
1. 创建触发器:
DELIMITER $$ -- 结束符改为$$
CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name
[FOR EACH ROW]
BEGIN
commands;
END$$
DELIMITER ; -- 结束符改回;
注:一个触发器只能定义一个操作,如BEFORE INSERT, AFTER UPDATE等。
如Account表:
CREATE TABLE ACCOUNT (
USERNAME VARCHAR(50) NOT NULL,
BALANCE INT NOT NULL,
PRIMARY KEY (USERNAME),
CHECK (BALANCE >= 0) -- analyzed but ignored by MySQL
);
例1:往表account插入记录,balance小于0时改为0
DELIMITER $$
CREATE TRIGGER account_beforeInsert BEFORE INSERT ON account
FOR EACH ROW
BEGIN
IF NEW.balance < 0 THEN -- NEW代表新的记录
SET NEW.balance = 0;
END IF;
END$$
例2:往表account插入记录,balance小于0时,触发异常
DELIMITER $$
CREATE TRIGGER account_beforeInsert BEFORE INSERT ON account
FOR EACH ROW
BEGIN
IF NEW.balance < 0 THEN
CALL xxx_yyy();
UPDATE _xxx_yyy SET X = 1; -- 通过调用不存在的存储过程或执行时报错的SQL来引发异常,名称尽量复杂,防止和已有或新建的表或存储过程重名。
END IF;
END$$
2. 查询触发器:
SHOW TRIGGERS;
3. 删除触发器:
DROP TRIGGER [database_name.]trigger_name
分享到:
相关推荐
mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql...
mysql触发器+存储过程
MySQL触发器教程
MYSQL触发器,可以使用它用来进行监控,例如商品价格变化,下单后商品库存减少等实用性操作!
MYSQL触发器在PHP项目中用来做信息备份、恢复和清空 MYSQL触发器在PHP项目中用来做信息备份、恢复和清空
我们已经去掉了关于触发器的错误的语句,但是仍旧有很多旧版本的手册在网上,举个例子,这是一个德国的Url上的: http://dev.mysql.com/doc/mysql/de/ANSI_diff_Triggers.html. 这个手册上说触发器就是存储过程,...
MySQL触发器
MySQL触发器说明和编写时的注意事项,其功能越来越强,可以学习
mysql触发器教程
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...
本文实例讲述了mysql触发器之创建使用触发器。分享给大家供大家参考,具体如下: 我们可以可以使用CREATE TRIGGER语句创建一个新的触发器,来看下具体的语法: CREATE TRIGGER trigger_name trigger_time trigger_...
主要介绍了mysql触发器之触发器的增删改查操作,结合实例形式分析了mysql触发器的定义及使用触发器进行增删改查等相关操作技巧,需要的朋友可以参考下
MySQL触发器、存储过程、自定义函数、视图简单示例
Mysql触发器的例子,包括,创建,删除,修改,三种触发器的实例
mysql触发器使用实例 看下例子基本上就会操作了!
mysql触发器.pdf
MySQL触发器的使用说明,利用函数每秒触发一次...............................................................