我正在尝试创建存储过程如下
CREATE PROCEDURE `Test1` (IN projName VARCHAR(200), IN tablName VARCHAR(200))
BEGIN
set @cmd = concat('Create table', tablName ' as ( select name from samprojects.projects where type=',projName')');
PREPARE stmt FROM @cmd;
EXECUTE stmt;
END
低于错误
ERROR 1583:调用本机函数时参数不正确' concat'
知道如何解决这个问题。
我正在使用MYSQL工作台来运行sql查询
MYSQL工作台生成的SQL脚本如下
USE `samprojects`;
DROP procedure IF EXISTS `Test1`;
DELIMITER $$
USE `samprojects`$$
CREATE PROCEDURE `Test1` (IN projName VARCHAR(200), IN tablName VARCHAR(200))
BEGIN
set @cmd = concat('Create table', tablName, ' as ( select name from samprojects.projects where type=',projName')');
PREPARE stmt FROM @cmd;
EXECUTE stmt;
END$$
DELIMITER ;
答案 0 :(得分:10)
tablName
之后您缺少逗号:
set @cmd = concat('Create table', tablName, ' as ( select name from samprojects.projects where type=''',projName, ''')');