mysql触发器
来源:互联网 发布:凯聪好声音版智云软件 编辑:程序博客网 时间:2024/06/07 06:03
1,触发器(触发函数的定义)
触发器是保存在数据库中的程序,用于监听某个表的行为,一旦这个行为发生,就去执行相应的sql语句
分类:
前触发器:在数据更新前触发,限制性触发器的内容,在执行数据操作的内容(一个表中只能有一个前触发器)
后触发器:在数据更新后自动执行触发器的内容(可以有多个)
这些行为包括:增加,删除,修改
对于insert语句只有new是合法的
对于delete语句只有old是合法的
update可以与new或old同时使用
mysql> select * from goods;
+----------+------------+------------+--------------+
| goods_id | goods_name | shop_price | goods_number |
+----------+------------+------------+--------------+
| 1 | 苹果 | 2.00 | 20 |
| 2 | 梨 | 2.00 | 30 |
| 3 | 香蕉 | 2.00 | 40 |
+----------+------------+------------+--------------+
3 rows in set (0.02 sec)
mysql> create trigger n after insert on orderr for each row update goods set goo
ds_number=goods_number-3 where goods_id=1;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into orderr values('1','苹果','2');
Query OK, 1 row affected (0.03 sec)
mysql> select * from goods;
+----------+------------+------------+--------------+
| goods_id | goods_name | shop_price | goods_number |
+----------+------------+------------+--------------+
| 1 | 苹果 | 2.00 | 17 |
| 2 | 梨 | 2.00 | 30 |
| 3 | 香蕉 | 2.00 | 40 |
+----------+------------+------------+--------------+
3 rows in set (0.00 sec)
mysql> drop trigger n;
Query OK, 0 rows affected (0.01 sec)
mysql> create trigger n after insert on orderr for each row update goods set goo
ds_number=goods_number-new.buy_number where goods_id = new.goods_id;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into orderr values('2','梨','3');
Query OK, 1 row affected (0.00 sec)
mysql> select * from goods;
+----------+------------+------------+--------------+
| goods_id | goods_name | shop_price | goods_number |
+----------+------------+------------+--------------+
| 1 | 苹果 | 2.00 | 17 |
| 2 | 梨 | 2.00 | 27 |
| 3 | 香蕉 | 2.00 | 40 |
+----------+------------+------------+--------------+
3 rows in set (0.00 sec)
mysql> drop trigger back_unmber;
Query OK, 0 rows affected (0.01 sec)
mysql> create trigger back_number after delete on orderr for each row update goo
ds set goods_number = goods_number+ old.buy_number where goods_id=old.goods_id;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into orderr values('1','苹果','2');
Query OK, 1 row affected (0.00 sec)
mysql> insert into orderr values('2','梨','4');
Query OK, 1 row affected (0.00 sec)
mysql> select * from orderr;
+----------+------------+------------+
| goods_id | goods_name | buy_number |
+----------+------------+------------+
| 2 | 梨 | 4 |
| 1 | 苹果 | 2 |
+----------+------------+------------+
2 rows in set (0.00 sec)
mysql> select * from goods;
+----------+------------+------------+--------------+
| goods_id | goods_name | shop_price | goods_number |
+----------+------------+------------+--------------+
| 1 | 苹果 | 2.00 | 15 |
| 2 | 梨 | 2.00 | 23 |
| 3 | 香蕉 | 2.00 | 40 |
+----------+------------+------------+--------------+
3 rows in set (0.00 sec)
mysql> delete from orderr where goods_id=2;
Query OK, 1 row affected (0.00 sec)
mysql> select * from goods;
+----------+------------+------------+--------------+
| goods_id | goods_name | shop_price | goods_number |
+----------+------------+------------+--------------+
| 1 | 苹果 | 2.00 | 15 |
| 2 | 梨 | 2.00 | 27 |
| 3 | 香蕉 | 2.00 | 40 |
+----------+------------+------------+--------------+
3 rows in set (0.00 sec)
mysql>
- 【mysql 触发器】触发器使用
- MYSQL 触发器
- mysql 触发器
- Mysql 触发器
- mysql 触发器
- mysql触发器
- MYSQL 触发器
- MySQL触发器
- mysql 触发器
- mysql触发器
- MYSQL 触发器
- mysql 触发器
- mysql 触发器
- MySQL触发器
- MYSQL触发器
- mysql触发器
- mysql触发器
- mysql触发器
- 给jQuery添加utility方法
- 给网页设计师和前端开发者看的前端性能优化
- Vala for Java Programmers
- osgi出错java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
- 【转载做哈笔记】single sign-on
- mysql触发器
- 突破湖北校园e信限制—共享上网教程
- js callback
- java中super()与this()的区别
- 布隆过滤器
- DAPM之五:dapm机制深入分析(上)
- java CopyOnWriteArrayList
- msp430头文件中 DEFC DEFW 及周边的解释【转】
- 社团的那些事(7)