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

Susan Sarandon
发布: 2024-10-29 04:00:02
原创
554 人浏览过

 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!