myisam和触发器原子性

7lrncoxx  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(258)

假设我在一个myisam表上有一个附加了触发器的操作(让它成为insert)。
我知道mysql在运行这个insert时执行隐式表锁。
问题:触发器会在这个隐式锁中运行吗?触发器中使用的表是否会被此锁锁定?
换句话说,触发器的执行是原子操作(比如我的insert)的一部分吗?
顺便问一下,innodb呢?相同的?触发器是否 Package 到显式事务中?

aiazj4mn

aiazj4mn1#

innodb查询在隐式事务中运行。
它实际上运行事务中的所有内容。“no transaction”模式由每条语句之后的隐式提交来模拟(“启动事务”禁用自动隐式提交)。
此事务包括为查询运行的所有触发器,以及外键的共享模式锁。
使用myisam,触发器将锁定它修改的任何表,就像普通查询一样。不管它是不是原子的-我不知道。

相关问题