简单的更新语句间歇性地超时

时间:2018-10-21 10:33:53

标签: mysql database timeout

我正在用简单的update语句更新表行中的某些值,该语句在大多数情况下运行良好。但是,间歇性地会超时并显示以下错误-

Lock wait timeout exceeded; try restarting transaction

更新方法位于存储过程中,该存储过程的超时设置为100秒。我在MySQL中运行了SHOW PROCESSLIST命令,发现更新查询无限期地运行。我需要手动将其杀死,以便其他功能正常运行。我曾尝试使用此语句SET FOREIGN_KEY_CHECKS=0;

调用update之前将外键检查设置为false。

Update语句为-

UPDATE Campaign SET Status = 1, ModifiedOn = UTC_TimeStamp(), ModifiedBy = var_UserId, ProcessId = var_ProcessId where Id = var_CampaignId;

更新是针对主键进行的。

我在代码中看不到任何逻辑问题,因为经过几次尝试,相同的更新语句可能会成功。如何摆脱这个超时错误?从现在起的两个星期,我一直在为此问题苦苦挣扎。

0 个答案:

没有答案