mysql 的触发器
来源:互联网 发布:php有什么用 编辑:程序博客网 时间:2024/05/29 18:01
直接上例子:
CREATE TRIGGER myTrigger2
AFTER update on t_alert
FOR EACH ROW
BEGIN
DECLARE alert_ids INT;
DECLARE alert_infos text;
DECLARE statuss char(225);
set alert_ids=OLD.id;
set alert_infos=OLD.alertinfo;
set statuss=OLD.status;
INSERT into t_triggerTmp set alert_id=alert_ids,alert_info=alert_infos,status=statuss;
End
语法自己查找:
CREATE TRIGGER trigger_name
trigger_time
trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt
rigger_name:标识触发器名称,用户自行指定;
trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;
trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;
tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;
trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句。
由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。
查看触发器: show triggers
删除触发器: drop trigger +name
NEW 与 OLD 详解
上述示例中使用了NEW关键字,和 MS SQL Server 中的 INSERTED 和 DELETED 类似,MySQL 中定义了 NEW 和 OLD,用来表示
触发器的所在表中,触发了触发器的那一行数据。
具体地:
在 INSERT 型触发器中,NEW 用来表示将要(BEFORE)或已经(AFTER)插入的新数据;
在 UPDATE 型触发器中,OLD 用来表示将要或已经被修改的原数据,NEW 用来表示将要或已经修改为的新数据;
在 DELETE 型触发器中,OLD 用来表示将要或已经被删除的原数据;
使用方法: NEW.columnName (columnName 为相应数据表某一列名)
另外,OLD 是只读的,而 NEW 则可以在触发器中使用 SET 赋值,这样不会再次触发触发器,造成循环调用(如每插入一个学生前,都在其学号前加“2013”)。
- MySQL触发器的使用
- MySQL触发器的使用
- MySQL触发器的使用
- MySQL 触发器的用法
- Mysql 触发器的使用
- MySQL触发器的使用
- MySQL的触发器
- Mysql 触发器的作用
- mysql 触发器的使用
- MySQL - 触发器的应用
- mysql的触发器详解
- mysql的触发器
- Mysql 的触发器详解
- mysql下的触发器
- mysql 触发器的使用
- MySQL触发器的语法
- mysql的触发器
- mysql触发器的使用
- 嵌入式学习-uboot-lesson1-链接器脚本基础知识
- JNIEnv类型中方法的使用
- Spring(六)
- Commom JS
- 删除文件,若文件所在目录下只有一个文件则递归删除文件所在目录,直到删除的所在目录下有两个文件或者文件夹
- mysql 的触发器
- Android内存优化总结【整理】
- 高德地图——标记
- C++实现快速排序(源代码)
- 使用mybatis的逆向工程(xml方式)创建java代码
- linux 安装ffmpeg 非yasm yum安装
- NodeMCU文档中文翻译 4 烧写固件
- 炖排骨 && 干炒虾
- [Android]Android中人脸识别接口的使用