数据库学习之触发器
2013-04-11 22:31
169 查看
最近一直在补数据库知识,非计科出身的我知识漏洞的确有点小大。
1、触发器简单知识回顾:
触发器是一种特殊的存储过程,特殊在其执行不是由程序调用,也不是手工启动,而是被某个设定好的事件触发。
2、如何定义触发器呢?
CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt;
trigger_name 是你个触发器起的名字
trigger_time 是触发程序的动作时间,可以为BEFORE 或 AFTER, 用来指明触发程序是在激活它的语句之前或之后触发。
trigger_event 指明了激活触发程序的语句类型,可以为 INSERT,UPDATE , DELETE。
示例:
上面的例子实现了一个极其简单的触发器,无论向表中添加什么数据字段,触发器都会将相应的t_name 设置为helloworld。 触发器ins_tr 会因为事件INSERT而触发,完成对t_name 的更新。
3、常见问题:
ERROR 1235 (42000): This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
这个错误表明该表已经有触发器了,如果你又不记得自己曾经创建过什么关于这张表的触发器,可以:
SHOW TRIGGERS;
在TRIGGER对应的一列中,可以找到已经创建的TRIGGER。然后
DROP TRIGGER tri_name;
1、触发器简单知识回顾:
触发器是一种特殊的存储过程,特殊在其执行不是由程序调用,也不是手工启动,而是被某个设定好的事件触发。
2、如何定义触发器呢?
CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt;
trigger_name 是你个触发器起的名字
trigger_time 是触发程序的动作时间,可以为BEFORE 或 AFTER, 用来指明触发程序是在激活它的语句之前或之后触发。
trigger_event 指明了激活触发程序的语句类型,可以为 INSERT,UPDATE , DELETE。
示例:
CREATE TABLE ins ( t_id INT, t_name VARCHAR(20)); # 创建表ins CREATE TRIGGER ins_tr BEFORE INSERT ON ins FOR EACH ROW SET NEW.t_name = "helloworld"; #无论向表中添加什么数据字段,t_name="helloworld" INSERT INTO ins (t_id) VALUES (1); SELECT * FROM ins; +------+------------+ | t_id | t_name | +------+------------+ | 1 | helloworld | +------+------------+ 1 row in set (0.00 sec)
上面的例子实现了一个极其简单的触发器,无论向表中添加什么数据字段,触发器都会将相应的t_name 设置为helloworld。 触发器ins_tr 会因为事件INSERT而触发,完成对t_name 的更新。
3、常见问题:
ERROR 1235 (42000): This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
这个错误表明该表已经有触发器了,如果你又不记得自己曾经创建过什么关于这张表的触发器,可以:
SHOW TRIGGERS;
在TRIGGER对应的一列中,可以找到已经创建的TRIGGER。然后
DROP TRIGGER tri_name;
相关文章推荐
- 从机房重构中学习数据库——存储过程和触发器
- 数据库学习四:触发器
- 菜鸟从零学习数据库(二)——触发器
- Oracle 数据库触发器学习笔记
- 【Sqlit数据库官方API学习—part02】触发器(Trigger)
- 数据库学习--触发器
- 黑马程序员_学习日记50_619数据库开发及ADO.Net(临时表、表变量、视图、变量、if…else…和while、事务、存储过程、触发器)
- 数据库学习笔记 --- 触发器原理学习
- Mysql 数据库学习笔记05 触发器
- MySQL存储过程和触发器的实现--数据库学习笔记
- Oracle数据库学习13之触发器
- 【数据库学习笔记】MySQL_03_存储过程,触发器,权限,视图,函数
- 数据库学习之触发器
- Java学习笔记之数据库(触发器、事物、索引、投影和除、视图、存储过程和函数 )含各种链)___ 一直补充
- 数据库学习之存储过程——触发器
- 数据库学习13-触发器
- PostgreSQL数据库日常学习笔记16-触发器函数
- Music -Database -4(数据库触发器和View的学习)
- 数据库学习第二季第一集:小论MySQL外键以及触发器的写法
- 数据库学习笔记-触发器