触发器算是蛮好用的一个功能了,所谓触发器就是在某种条件下会触发执行的一个小程序。比如我们做一个大型的数据处理,这种例子很多,有一个表有很多记录,我们要经常拿到这个表的一些统计信息,比如这个表有多少条数据。从实现上来讲思路很多。我们可以使用 select count(id) from 表名,这是个不错的选择,但数据量太大,速度怎么样就不能保证了。
另一个办法,我们不妨记录下这个表的现在大小,在这个表每次插入一条语句时候就对这个计数进行加一操作,然后但我们要统计信息时候就直接取这个数据比select count(id) from 表名的速度要快多了。
当然,这么做也有风险就是我们要过一段时间确定这个计数的正确性。触发器出错的概率不大,但这个计数不被改,或者出问题则没人敢打包票,所以我们可以选择定时去核实他,比如说1天。
接下来我们就用触发器实现一个功能,对pet表的数据进行计数。
mysql> select * from pet;
+----------+--------+---------+------+------------+------------+
| name | owener | species | sex | birth | death |
+----------+--------+---------+------+------------+------------+
| Fluffy | Harold | cat | m | 1993-02-04 | 2008-12-01 |
| Claws | Gwen | cat | m | 1992-01-04 | 2008-12-01 |
| Buffy | Harold | cat | m | 1996-01-20 | 2008-12-01 |
| Didi | Gwen | cat | m | 1997-01-04 | 2008-12-01 |
| Fatpower | Shiwa | cat | m | 1997-01-04 | 2008-12-01 |
| Cliak | Yuna | dog | f | 2000-11-09 | NULL |
+----------+--------+---------+------+------------+------------+
6 rows in set (0.00 sec)
我们用account_pet表记录这个表的记录的条数
mysql> select * from account_pet;
+-------+
| count |
+-------+
| 6 |
+-------+
1 row in set (0.00 sec)
接下来我们开始书写计数触发器,所谓计数无非就是当我们对pet表进行插入操作数是,将count+1
mysql> delimiter |
mysql> create trigger account_pet_trigger after insert on pet
-> for each row begin
-> update account_pet set count = count + 1;
-> end;
-> |
Query OK, 0 rows affected (0.05 sec)
mysql> delimiter ;
接下来你就会发现每当你插入一个新的数据到pet,account_pet_trigger触发器就被触发执行,他就会执行他的执行体update account_pet set count = count + 1;将我们的统计加一。
触发器格式:
create trigger 触发器名称 trigger_time trigger_event on table_name for each row 执行体
trigger_time: before after
trigger_event: insert update delete很容易理解吧
为了完成统计功能,我们还要对pet表格写一个删除时候减一的触发器。
分享到:
相关推荐
SQL触发器使用实例 --创建触发器,示例1 /* 创建触发器[T_INSERT_卷烟库存表],这个触发器较简单。 说明: 每当[卷烟库存表]发生 INSERT 动作,则引发该触发器。 触发器功能: 强制执行业务规则,保证插入的数据...
mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql触发器使用mysql...
专用触发器 使用教程 系统详尽的讲解 PDF
oracle触发器使用教程和命名规范
mysql触发器使用实例 看下例子基本上就会操作了!
触发器使用原理和常用T-SQL截取字符串操作,经过实践操作很实用很方便
触发器使用教程和命名规范 1 1,触发器简介 1 2,触发器示例 2 3,触发器语法和功能 3 4,例一:行级触发器之一 4 5,例二:行级触发器之二 4 6,例三:INSTEAD OF触发器 6 7,例四:语句级触发器之一 8 8,...
宇电 AIJK系列三相移相 周波过零可控硅调功触发器使用说明书rar,宇电 AIJK系列三相移相 周波过零可控硅调功触发器使用说明书
SQLServer-触发器使用实例.docx
KCjD触发器使用PPT学习教案.pptx
SQL Server触发器使用方法探析.pdf
宇电AIJK系列三相移相/周波过零可控硅调功触发器使用说明书rar,宇电AIJK系列三相移相/周波过零可控硅调功触发器使用说明书
触发器是与表有关的数据库对象,在对表进行insert/update/delete之前或之后,会触发并执行触发器中定义的SQL语句。触发器的这种特性可以协助应用在数据库端确保数据的完整性,记录日志,校验数据等。
JK03-D三相过零触发器使用说明.pdf
MYSQL触发器,可以使用它用来进行监控,例如商品价格变化,下单后商品库存减少等实用性操作!
WPF触发器使用,几种常用的用法,仅供参考。
SQL触发器的使用方法,SQL触发器的使用方法,SQL触发器的使用方法,SQL触发器的使用方法
关于数据库的视图、索引、存储过程和触发器的使用
MySQL触发器的使用说明,利用函数每秒触发一次...............................................................
:NEW 和:OLD使用方法和意义,new 只出现在insert和update时,old只出现在update和delete时。在insert时new表示新插入的行数据,update时new表示要替换的新数据、old表示要被更改的原来的数据行,delete时old表示要被...