006_深入浅出mysql—触发器
来源:互联网 发布:武极天下神迹进阶数据 编辑:程序博客网 时间:2024/05/29 11:42
触发器是与表相关的数据库对象,在满足定义条件的时候触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。
创建
CTEATE TRIGGER trigger_name trigger_time, trigger_eventON tb_name FOR EACH ROW trigger_stmt;释:trigger_time:触发时间,可以是BEFORE(检查约束前触发)或者是AFTER(检查约束后触发)trigger_event:触发时间,可以是INSERT、UPDATE或者DELETE
备注:触发器只能创建在永久表上
对同一个表相同触发时间的触发事件,只能定义一个触发器。使用别名OLD和NEW来引用触发器中发生的记录内容。
示例:
mysql> delimiter $$mysql> create trigger ins_film after insert -> on film for each row -> begin -> insert into film_text(film_id, title, description) -> values (new.film_id, new.title, new.description); -> end; -> $$Query OK, 0 rows affected (0.00 sec)mysql> mysql> delimiter ; mysql> mysql> insert into film values(1001, 'a', 'abc');Query OK, 1 row affected (0.00 sec)mysql> select * from film;+---------+-------+-------------+| film_id | title | description |+---------+-------+-------------+| 1001 | a | abc |+---------+-------+-------------+1 row in set (0.01 sec)mysql> select * from film_text;+---------+-------+-------------+| film_id | title | description |+---------+-------+-------------+| 1001 | a | abc |+---------+-------+-------------+1 row in set (0.01 sec)
可以看出插入film的同时,回向film_text插入相应的记录。
删除触发器
DROP TRIGGER [schema.]trigger_name;
查看触发器
show triggers \Gselect * from information_schema.triggers;
触发器的使用
触发器执行语句,有下面两个限制:
- 触发程序不能调用将数据返回客户端的存储程序,也不能使用采用CALL语句的动态SQL语句,但是允许存储程序通过参数将参数返回触发程序。
- 不能在触发器中使用显示以显式或隐式方式开始或结束事务的语句,如ACTION、COMMIT或ROLLBACK。
MySQL的触发器是按照BEFORE触发操作、行操作、AFTER触发器的顺序执行的,其中任何一步操作发生错误都不会执行剩下的操作。如果是事务操作,整个作为一个事务回滚;如果是非事务表,已插入的无法回滚。
0 0
- 006_深入浅出mysql—触发器
- 001_深入浅出mysql—存储引擎
- 002_深入浅出mysql—数据类型
- 003_深入浅出mysql—索引
- 004_深入浅出mysql—视图
- 005_深入浅出mysql—存储过程和函数
- 深入浅出触发器
- mysql——触发器
- mysql——触发器
- mysql高级包含索引建立优化_函数_存储过程_触发器_及游标
- 深入浅出SQL触发器
- 深入浅出mysql_触发器
- Mysql学习——触发器
- 【触发器】数据库_触发器实例
- 【mysql 触发器】触发器使用
- MYSQL 触发器
- mysql 触发器
- Mysql 触发器
- Android -面向对象开发思维模式-帮助你逃离面向过程的开发的痛苦深渊
- Failed to initialize storage module: user 的解决方案
- 全排列问题
- 数据结构与算法JavaScript描述[第五章](队列)
- Xshell远程控制linux
- 006_深入浅出mysql—触发器
- linux crontab & 每隔10秒执行一次
- ideal15的创建maven项目
- A Structure from Motion System
- MFC 获取字符串的第n个字符
- iOS 修改TabBar的高度
- egret添加字体样式
- Ubuntu 安装Tensoflow
- SNMP协议