Mysql中触发器的使用
来源:互联网 发布:人工智能2电影 编辑:程序博客网 时间:2024/05/01 21:47
概念
触发器是一种特殊的事务,它监听增删改操作,并触发增删改操作。主要是用来处理一些比较复杂的业务逻辑以保证数据的联动性。其包含了四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/before) 4.触发事件(insert/update/delete)
语法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
FOR EACH ROW 用来标识触发器的类型,因为MySQL支持行级别的触发器,不支持语句触发器,故只能使用FOR EACH ROW 。因为触发器中使用’;’区分多个事件语句,故需要重新定义定界符。
创建表
table1
DROP TABLE IF EXISTS tab1;CREATE TABLE tab1( tab1_id varchar(11));
table2
DROP TABLE IF EXISTS tab2;CREATE TABLE tab2( tab2_id varchar(11));
实例
example1:
创建触发器:t_afterinsert_on_tab1
作用:增加tab1表记录后自动将记录增加到tab2表中
DROP TRIGGER IF EXISTS t_afterinsert_on_tab1;CREATE TRIGGER t_afterinsert_on_tab1 AFTER INSERT ON tab1FOR EACH ROWBEGIN insert into tab2(tab2_id) values(new.tab1_id);END;
测试一下
INSERT INTO tab1(tab1_id) values('0001');
看看结果
SELECT * FROM tab1;SELECT * FROM tab2;
example2:
创建触发器:t_afterdelete_on_tab1
作用:删除tab1表记录后自动将tab2表中对应的记录删去
DROP TRIGGER IF EXISTS t_afterdelete_on_tab1;CREATE TRIGGER t_afterdelete_on_tab1AFTER DELETE ON tab1FOR EACH ROWBEGIN delete from tab2 where tab2_id=old.tab1_id;END;
测试一下
DELETE FROM tab1 WHERE tab1_id='0001';看看 结果
SELECT * FROM tab1;SELECT * FROM tab2;
注意:当触发器和存贮过程交互的调用某一个字段的时候会出现这个报错mysql error 1142
阅读全文
0 0
- Mysql中触发器的使用
- mysql中触发器的使用
- MySQL中触发器的使用
- mysql 中触发器的使用
- Mysql中触发器的使用
- mysql中使用触发器
- mysql中触发器的使用详解
- MySQL触发器中变量的使用
- MySQL触发器的使用
- MySQL触发器的使用
- MySQL触发器的使用
- Mysql 触发器的使用
- MySQL触发器的使用
- mysql 触发器的使用
- mysql 触发器的使用
- mysql触发器的使用
- mysql触发器的使用
- MySQL触发器的使用
- python:python语句中的continue和break
- memcached的基本命令
- ubuntu包管理命令apt和dpkg总结
- 交换排序算法
- adb server version (31) doesn’t match this client (36); killing… * daemon started successfully *
- Mysql中触发器的使用
- 过滤器
- java注解
- 酷炫MQTT实现消息推送
- 3038: 上帝造题的七分钟2/3211: 花神游历各国
- 单片机C语言指针意义浅析—Keil-C51
- BZOJ 3529: [Sdoi2014]数表 莫比乌斯
- Java运行时内存区域
- urllib和urllib2