返回介绍

1 Triggers 的应用

发布于 2025-02-20 13:00:32 字数 1383 浏览 0 评论 0 收藏 0

在“cmdev”资料中有一个“emplog”表格,如果有人执行任何修改“cmdev.emp”表格资料的动作,都要新增一笔讯息到“cmdev.emplog”表格中,查询这个表格的资料,就可以知道在什么时候曾经修改过“cmdev.emp”表格中的资料:

字段名称型态NULL索引默认值其它资讯说明
lognobigint(20)NOPRINULLauto_increment纪录编号
logdttimestampNO CURRENT_TIMESTAMP 日期时间
messagevarchar(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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文