我刚遇到MySQL Commands out of sync; you can't run this command now错误。它之前出现过,但这些问题和答案都是指应用程序级代码。
这是我试图通过phpmyadmin导入的文件。 (它从实际代码中简化。)我很困惑,因为我在其他导入的文件中有其他的drop / create / call语句组。
导致错误的原因是什么?
DROP PROCEDURE IF EXISTS `c9gtd`.`select_changes`;
CREATE PROCEDURE `c9gtd`.`select_changes`
(
IN `user_id` INT,
IN `days` INT
)
SELECT
0 AS `id`
;
CALL `c9gtd`.`select_changes`(-1,-1); -- Test
DROP PROCEDURE IF EXISTS `c9gtd`.`select_info`;
CREATE PROCEDURE `c9gtd`.`select_info` (IN `id` INT) -- ERROR IS HERE
SELECT
0 AS `id`
;
CALL `c9gtd`.`select_info`(-1); -- Test
答案 0 :(得分:0)
这是因为两个存储过程都是SELECT。到目前为止的所有存储过程都是UPDATE:在没有数据返回的情况下,在一个连接中有多个CALL是可以的。