MySQL数据库
2016-03-31 00:00
447 查看
摘要: 触发器
语法:
trigger_stmt是触发器的语体,即在触发器被激活时需要被执行的语句。在触发器的语体里,可以使用NEW.col_name语法来引用在INSERT或UPDATE触发器里将被插入或修改的那个新行里的列。类似的,OLD.col_name语法可以用来引用在DELETE或UPDATE触发器里将被删除或修改的原行里的列。如果想要用BEFORE触发器改变列值,而且想在值存储到表中之前改变它,那么可以使用SET NEW.col_name = value。
例:
语法:
CREATE TRIGGER trigger_name {BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON tbl_name FOR EACH ROW trigger_stmt
trigger_stmt是触发器的语体,即在触发器被激活时需要被执行的语句。在触发器的语体里,可以使用NEW.col_name语法来引用在INSERT或UPDATE触发器里将被插入或修改的那个新行里的列。类似的,OLD.col_name语法可以用来引用在DELETE或UPDATE触发器里将被删除或修改的原行里的列。如果想要用BEFORE触发器改变列值,而且想在值存储到表中之前改变它,那么可以使用SET NEW.col_name = value。
例:
CREATE TABLE T (precent INT, dt DATETIME); delimiter $ CREATE TRIGGER bi_t BEFORE INSERT ON t FOR EACH ROW BEGIN IF NEW.percent < 0 THEN SET NEW.percent = 0; ELSEIF NEW.percent > 100 THEN SET NEW.percent = 0; END IF; END$ NEW.dt = CURRENT_TIMESTAMP; END$ delimiter;
相关文章推荐
- MySql 中IFNULL、ISNULL和NULLIF区别
- mysql 数据类型
- 客户端工具用多了 有弊端;mysql一些知识
- MYSQL的常用命令和增删改查语句和数据类型
- 配置解压版mysql5.7方法
- 关于mysql的update、delete、和insert into能否使用别名问题
- mysql建索引杂谈
- mysql更改表结构:添加、删除、修改字段、调整字段顺序
- mysql优化经验
- 常用的三种修改mysql最大连接数的方法
- Mysql 关键字做表名,出现插不进去数据,解决方法
- MySQL解压版安装配置详解
- MYSQL中group_concat有长度限制!默认1024
- 还是mysql的问题
- Mac下配置mysql环境变量的另一种方式
- mysql 安装
- mysql 时间戳格式化函数from_unixtime使用说明
- ubuntu 15.04 通过3306端口远程连接mysql
- Mysql学习笔记之常用数据类型
- 《MySQL必知必会学习笔记》:子查询