Этот запрос умирает, когда я пытаюсь выполнить его в PHP-коде и в phpMyAdmin.Сбой запроса SQL при обновлении с использованием внутреннего соединения?
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);
Это не вопрос оптимизации ... Узнайте, почему вы получаете Lock Wait. –
@RobertHarvey sql db не используется никаким другим приложением, я не открыл никаких записей об этом, его не использовали на какой-либо другой машине, не могу догадаться, что происходит –