【问题标题】:MyISAM and triggers atomicityMyISAM 并触发原子性
【发布时间】:2018-01-14 17:55:09
【问题描述】:

假设我在 MyISAM 表上进行了一些操作(让它成为 INSERT),并附加了一个触发器。

我知道 MySQL 在运行此 INSERT 时会执行隐式表锁。

问题:触发器会在内部这个隐式锁中运行吗?触发器中使用的表会被这个锁锁定吗?

也就是说,触发器的执行是不是原子操作的一部分(比如我的INSERT)?

顺便说一句,InnoDB 呢?相同?触发器是否包含在显式事务中?

【问题讨论】:

标签: mysql triggers innodb myisam atomic


【解决方案1】:

InnoDB 查询在隐式事务中运行。

它实际上在事务中运行所有内容。 “无事务”模式由每条语句后的隐式提交模拟(“启动事务”禁用自动隐式提交)。

此事务包括为查询运行的所有触发器,以及外键的共享模式锁。

使用 MyISAM,触发器将锁定它修改的任何表,就像普通查询一样。它是否是原子的 - 我不知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 2014-11-29
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    相关资源
    最近更新 更多