我已经尝试了几天没有成功使用grails更新MySQL数据库中的记录。我总是收到由以下原因引起的java.sql.SQLException:

超过锁定等待超时

这是我正在使用的代码:

def campaignUpdater(id, details){
def dbData = Campaigns.get(id)
if(dbData){
      dbData.totalSent = details.totalSent
      dbData.totalQueued = details.totalQueued
      dbData.totalFailed = details.totalFailed
      dbData.uniqueClickers = details.uniqueClickers
      dbData.opened = details.opened
      dbData.save(flush: true, failOnError: true)
      return true
  }else
    return false
}

我真的需要尽快的帮助。

最佳答案

如果存在deadlockLock wait timeout exceeded无法检测到Mysql异常,或者您的查询运行时间很长,则可能导致ojit_code异常。

您可能遇到了InnoDB引擎问题。您很可能需要杀死一些进程才能使查询正常运行。
有关更多信息,请参见these answers

10-06 13:39