Я новичок в MySQL и пытаюсь написать некоторые MySQL хранимые процедуры и сталкиваюсь с некоторыми ошибками, которые я не могу найти исправить.
Простая хранимая процедура для воспроизведения ошибок
DELIMITER //
DROP PROCEDURE IF EXISTS testing;
CREATE PROCEDURE testing(sqlQuery varchar(100))
BEGIN
PREPARE stmt FROM sqlQuery;
EXECUTE stmt ;
DEALLOCATE PREPARE stmt;
END //
DELIMITER ;
Я создаю динамический запрос c sql на сервере приложений и отправляю его в качестве параметра на сервер базы данных MySQL.
Для простоты давайте рассмотрим sqlQuery содержит SELECT * FROM Users
.
Когда я впервые выполняю хранимую процедуру в MySQL Workbench, я получаю:
Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sqlQuery; EXECUTE stmt ; DEALLOCATE PREPARE stmt; END' at line 5
Когда я выполняю ее во второй раз, я получаю:
Error Code: 2014 Commands out of sync; you can't run this command now
Я не могу найти причину этих ошибок. Может кто-нибудь предоставить некоторую информацию? Спасибо.
MySQL: 8.0.19
MySQL Верстак: 8.0.19