MySQL中的触发器
来源:互联网 发布:移动硬盘与mac连接 编辑:程序博客网 时间:2024/05/18 02:33
主要功能:实现检查约束,维护冗余数据,模拟外键级联选项。
1.用MySQL语句实现触发器
(1)创建触发器:
CREATE TRIGGER 触发器名 触发时间 触发事件 ON 表名 FOR EACH ROWBEGIN触发程序END;
注:由于触发程序中一般会有以;结尾的语句,而在MySQL窗口中;是命令结束标记,直接将上述语句输入,会导致语句被拆开报错。所以,应在创建之前用DELIMITER重设结束标记,创建完毕后恢复为;。比如,上述代码完整版应该是:
DELEMITER $$CREATE TRIGGER 触发器名 触发时间 触发事件 ON 表名 FOR EACH ROWBEGIN触发程序END;$$DELIMITER ;
(2)查看触发器的定义:和数据库、表的操作类似,用SHOW TRIGGERS;和SHOW CREATE TRIGGER 触发器名;查看触发器定义。
(3)删除触发器:DROP TRIGGER 触发器名;
2.用Navicat建立触发器
表>设计表>触发器,填写触发器名,选择触发时间、触发事件,在下方的“定义”栏里,填上触发程序即可。
3.说明:
(1)触发时间:BEFORE或AFTER。表示在触发事件发生之前/之后执行触发程序。
(2)触发事件:INSERT,UPDATE或DELETE。表示在插入新纪录/更改某行记录/删除某行记录时触发。
(3)FOR EACH ROW:触发事件影响的每条记录都会执行一次触发程序。
(4)触发程序:指定触发事件激活后要执行的代码。代码如何去写,后面可能会写一篇《MySQL编程基础》。
这里涉及到OLD和NEW关键字:
①insert新记录时,用NEW表示新纪录,用NEW.字段名访问字段值。
②delete旧记录时,用OLD表示旧纪录,用OLD.字段名访问字段值。
③update记录时,用OLD表示修改前的旧记录,用NEW表示修改后的新纪录。访问字段值同上。
④OLD记录是只读的,NEW记录可读写。
⑤在BEFORE的触发程序中,可用SET NEW.字段名=字段值;来修改NEW记录的值;但在AFTER的触发程序中,不可修改。也就是说,记录只能在被触发器外的动作操作之前,被触发程序进行写入操作。
- MySql 中的 触发器使用
- mysql中的触发器
- (15)mysql中的触发器
- mysql中的触发器
- mysql中的触发器
- mysql中的触发器
- mysql中的触发器
- MySQL中的触发器
- MySQL中的触发器
- Mysql数据库中的触发器
- MySQL中的触发器
- MYSQL中的触发器
- Mysql中的触发器
- Mysql数据库中的触发器操作
- MySQL中的触发器insert、update
- Mysql 触发器中的new 和 old
- mysql中的触发器和事务的操作
- mysql中的函数 存储过程和触发器
- STM8S TIM2 输出PWM初始化函数
- java笔记(九):synchronized
- 数据链路层
- Material Design 之 Toolbar 开发实践总结
- Java值传递与引用传递
- MySQL中的触发器
- PDO PHP
- 欢迎使用CSDN-markdown编辑器
- 【7月3日】LeetCode刷题日志(一):TwoSum
- 在django中使用 MEDIA_URL 和 MEDIA_ROOT
- 第一次写博客,先来试试水!
- 学习在于积累
- html侧滑页面
- 欢迎使用CSDN-markdown编辑器