2012-08-09 70 views
2

我與蛋糕2.1.2Mysql的僵局更新

工作這是我在控制器動作:

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

有時我有這個錯誤,我得到500: [ PDOException] SQLSTATE [40001]:序列化失敗:1213嘗試獲取鎖定時發現死鎖;嘗試重新啓動交易

我敢肯定,在任何腳本中都沒有鎖。 我需要解決什麼問題?

+0

你使用什麼引擎? – PeeHaa 2012-08-09 14:07:11

+0

你可以發佈它生成的SQL嗎? – jeremyharris 2012-08-09 15:24:47

+0

我找到了導致這個問題的原因。 mysql事件。我有一些預定的事件,並可能這些簡單的查詢(我敢肯定沒有鎖),使一些鎖..我不知道如何......但我會從MySQL中移出這些查詢。 – Giacom0 2012-08-17 09:12:09

回答

0

您可以通過將表上的引擎類型更改爲InnoDB來防止這種情況發生。