【问题标题】:Mysql DeadLock On UpdateMysql 更新死锁
【发布时间】:2012-08-09 14:04:35
【问题描述】:

我正在使用 Cake 2.1.2

这是我在控制器中的操作:

$this->News->updateAll(
    array('News.Unread' => 0),
    array('News.Id <=' => $lastNewsId, 'RequestingUserId' => $current['id'])
);

有时我有这个错误,我得到 500: [PDOException] SQLSTATE[40001]:序列化失败:1213 尝试获取锁时发现死锁;尝试重启事务

我确信在任何脚本中都没有锁。 我需要解决什么问题?

【问题讨论】:

  • 你能发布它生成的SQL吗?
  • 我找到了导致该问题的原因。 mysql 事件。我有一些预定的事件,可能这些简单的查询(我确定没有锁定)会产生一些锁定。我不知道如何......但我要将这些查询从 mysql 中移出。跨度>
  • CakePHP 3 也有类似的问题。我怀疑这是因为 CakePHP ORM 的工作原理
  • 你在使用上面的事务吗?

标签: php mysql cakephp pdo


【解决方案1】:

您可以通过将表上的引擎类型更改为 InnoDB 来防止这种情况发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2020-10-25
    • 2015-03-29
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2015-08-04
    相关资源
    最近更新 更多