【发布时间】:2013-11-03 19:01:48
【问题描述】:
当我尝试在 PHP 代码和 phpMyAdmin 中执行此查询时,该查询将终止。
UPDATE Inventory
INNER JOIN InventorySuppliers
ON Inventory.LocalSKU = InventorySuppliers.LocalSKU
SET Inventory.Integer2 = '1'
WHERE InventorySuppliers.SupplierSKU = '2D4027A6'
错误是:
1205 - 超过锁定等待超时;尝试重启事务
如何防止锁定超时和/或解决此问题?
我可以在 Microsoft Access 中正确运行此查询,而 phpMyAdmin db 是该 Access 数据库的副本。增加执行时间对我来说不是一种选择,因为更新一条记录需要很长时间。
$data1 = array('Inventory.Integer2'=>$shipping);
$this->db->where('InventorySuppliers.SupplierSKU', $SupplierSKU);
$this->db->update('Inventory inner join InventorySuppliers on Inventory.LocalSKU = InventorySuppliers.LocalSKU', $data1);
$this->db->close();
return ($this->db->affected_rows() > 0);
【问题讨论】:
-
这不是优化问题...找出为什么会出现锁定等待。
-
@RobertHarvey sql db 没有被任何其他应用程序使用,我没有打开它的任何记录,它没有在任何其他机器上使用,无法猜测发生了什么