MySQL触发器
2016-07-18 09:01
309 查看
触发器是个特殊的存储过程,不同的是,执行存储过程要使用CALL语句来调用,而触发器的执行不需要使用CALL语句来调用。
创建触发器的语法
trigger_time 标识触发时机,可以定义为before或after;
trigger_event 标识触发事件,包括 INSERT、UPDATE和DELETE;
table_name标识建立触发器的表名,即在哪张表上建立触发器;
trigger_stmt 是触发程序体,可以用 begin和end作为开始和结束;
例如:
"NEW.column_name"或者"OLD.column_name".这样在技术上处理(NEW | OLD.column_name)新和旧的列名属于创建了过渡变量("transition variables")。
对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及OLD同时使用。
创建触发器的语法
CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_stmt其中,trigger_name 标识触发器名称,用户自定义;
trigger_time 标识触发时机,可以定义为before或after;
trigger_event 标识触发事件,包括 INSERT、UPDATE和DELETE;
table_name标识建立触发器的表名,即在哪张表上建立触发器;
trigger_stmt 是触发程序体,可以用 begin和end作为开始和结束;
例如:
CREATE TRIGGER testfef BEFORE INSERT ON test1 FOR EACH ROW BEGIN INSERT INTO test2 SET a2=NEW.a1; DELETE FROM test3 WHERE a3=NEW.a1; .......... END
"NEW.column_name"或者"OLD.column_name".这样在技术上处理(NEW | OLD.column_name)新和旧的列名属于创建了过渡变量("transition variables")。
对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及OLD同时使用。
相关文章推荐
- MySQL 数据库性能优化之SQL优化
- mysql LIMIT 子句用法及原理
- 全面解析Windows下安装 mysql5.7的方法
- mysql-innodb 日志机制分析----写在死锁前面
- MySQL在创建索引之前一定要想到的事情
- 使用MySQL踩过的坑
- mac之配置mysql到环境变量及使用命令操作数据库
- MYSQL基础笔记(四)-数据基本操作
- ubuntu14.04上安装Mysql-5.7.11
- MySql Server 命令行打开闪退的解决方案
- MySQL数据库(5)----删除或更新已有行
- 为mysql安装sysbench
- windows安装配置mysql-5.7.13-winx64方法
- pandas和数据库进行交互(以mysql为例)
- 创建和操作表
- MySQL数据表修复, 如何修复MySQL数据库(MyISAM / InnoDB)
- MySQL数据表修复, 如何修复MySQL数据库(MyISAM / InnoDB)
- varchar长度需要是2的倍数吗?
- MYSQL索引:对聚簇索引和非聚簇索引的认识
- 关于mysql一些问题。