首页  >  文章  >  数据库  >  MySQL 触发器可以更新调用它们的同一个表吗?

MySQL 触发器可以更新调用它们的同一个表吗?

Susan Sarandon
Susan Sarandon原创
2024-10-29 04:00:02555浏览

 Can MySQL Triggers Update the Same Table They Are Called From?

MySQL 触发器:更新同一表行的限制

问题:如何在 MySQL 触发器中为新行设置值并更新同一个表中的另一行?

尝试创建一个触发器,该触发器在行插入时执行以下操作:

  1. 计算并设置新行的特定值。
  2. 将上一行的 endDate 设置为新行的 startDate 前一天。

但是,触发器导致错误:“Can't update table split in Stored函数/触发器,因为它已被调用此存储函数/触发器的语句使用。”

答案:

不幸的是,无法使用触发器执行所需的操作。 MySQL 触发器更新调用它们的同一个表的能力受到限制。施加此限制是为了防止同时更新可能引起的数据完整性问题。

实现所需功能的推荐方法是创建一个存储过程,将插入和更新操作封装在单个事务中。这确保了数据库在整个过程中保持一致的状态。

以上是MySQL 触发器可以更新调用它们的同一个表吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn