Я создаю простую процедуру для удаления строки из таблицы tbGame
, но когда я пытаюсь вызвать процедуру, она возвращает error 1093
Я попытался выяснить, что происходит с помощьюудаление строки с помощью обычной команды (DELETE FROM <table>
), но это не сработало. После небольшого исследования я обнаружил, что эта ошибка обычно возникает, когда в подзапросе есть SELECT
, но в процедуре его нет, я также пытался отключить derived_merge
, но он тоже не работал, в конце концов ясоздал другую базу данных и попробовал ту же процедуру, и она сработала, поэтому я думаю, что проблема не в моей процедуре.
---turning off derived_merge
SET @@optimizer_switch='derived_merge=OFF';
-- that´s the procedure
DELIMITER //
CREATE PROCEDURE sp_DeleteGame (in _idGame int)
begin
delete from tbGame where idGame = _idGame;
end //
DELIMITER ;
-- that´s the normal delete command that I used
DELETE FROM tbGame WHERE idGame = 1;
В обоих случаях Mysql возвращает:
'Error Code: 1093. You can't specify target table 'tbGame' for update in FROM clause'