我是 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 ;
我正在应用程序服务器上构建动态 sql 查询并将其作为参数发送到 MySQL 数据库服务器。
为简单起见,让我们考虑 sqlQuery contains 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