我已经陷入困境几个小时了。我正在MYSQL中构建一个存储过程,在新物理表中有很多Insert。以下只是我无法在MySQL服务器上运行的示例。
DROP PROCEDURE IF EXISTS `someProc`$$
CREATE DEFINER=`test`@`%` PROCEDURE `someProc`()
BEGIN
DROP TABLE IF EXISTS table1;
SET @SQL1 = ' CREATE TABLE `table1` (`last_updated` INT);
INSERT INTO `table1` (`last_updated`)
VALUES (1); ';
-- select @SQL1;
PREPARE stmt2 FROM @SQL1;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;
END$$
DELIMITER ;
调用存储过程后,我得到一个MySQL错误代码1064,表示'INSERT INTO
table1 (
last_updated )
周围存在错误。
但我可以将分配给@ SQL1变量的String内容作为有效的MySQL查询运行,并获取创建的表以及插入其中的值。我已经搜索了错误代码,并且正如博客/文档页面中所建议的那样,我不认为我在这里使用保留关键字,也没有插入任何不兼容的数据类型。它是简单的SQL,它在存储过程设置之外工作,但在proc中失败。任何人都能解释一下吗?