文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1 Triggers 的应用
在“cmdev”资料中有一个“emplog”表格,如果有人执行任何修改“cmdev.emp”表格资料的动作,都要新增一笔讯息到“cmdev.emplog”表格中,查询这个表格的资料,就可以知道在什么时候曾经修改过“cmdev.emp”表格中的资料:
字段名称 | 型态 | NULL | 索引 | 默认值 | 其它资讯 | 说明 |
---|---|---|---|---|---|---|
logno | bigint(20) | NO | PRI | NULL | auto_increment | 纪录编号 |
logdt | timestamp | NO | CURRENT_TIMESTAMP | 日期时间 | ||
message | varchar(64) | YES | NULL | 讯息 |
要完成这样的需求,每一次修改“cmdev.emp”表格资料时,你都必需执行下列的工作:
要完成这样的需求,你可以使用 stored routines 来处理修改与新增纪录的工作,或是在应用程式中撰写程式来解决。不过都会是一件很麻烦的事情,而且比较容易造成遗漏纪录的情况。
MySQL 数据库提供一种特别的数据库元件,称为“triggers”,一般会把它称为“触发器”。Triggers 可以让你先把一些在特定状况要执行的叙述储存起来,MySQL 数据库会在正确的时机自动帮你执行这些叙述:
以上列讨论的需求来说,每一次修改“cmdev.emp”表格资料,都必须新增一笔纪录到“cmdev.emplog”表格中。这个需求的主角是“cmdev.emp”表格,所以你可以为这个表格建立一个 trigger 元件;因为是在修改资料的情况时才需要执行特定的工作,所以你要选择“UPDATE trigger”;新增一笔纪录到“cmdev.emplog”表格中的叙述就是储存在“cmdev.emp”表格的“UPDATE trigger”中。
如果你建立好需要的 trigger 元件后,MySQL 数据库就会自动帮你执行这些工作:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论