ошибка 1093, но в подзапросе нет выбора - PullRequest
0 голосов
/ 10 ноября 2019

Я создаю простую процедуру для удаления строки из таблицы 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'

...