我尝试使用一个过程创建一个表但是在这一行上有一个错误1064:
PRIMARY KEY(Dates
)');
这是代码:
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `new_procedure`(IN tname varchar(20))
BEGIN
SET @s = CONCAT('CREATE TABLE `test`.',tname,'(
`Dates` DATE NOT NULL,
`ncl1104` VARCHAR(45) NULL,
`ncl1204` VARCHAR(45) NULL,
PRIMARY KEY (`Dates`)');
PREPARE stm FROM @s;
EXECUTE stm;
END
调用程序:
CALL new_procedure ('`new_oil_table`');
感谢您的帮助。
答案 0 :(得分:0)
最后你遗漏了)
。我尝试过相同的但是在SQL Server中。见下文
CREATE PROCEDURE new_procedure
@tname varchar(20)
as
BEGIN
declare @s varchar(200);
SET @s = 'CREATE TABLE '+@tname+'(
Dates DATE NOT NULL,
ncl1104 VARCHAR(45) NULL,
ncl1204 VARCHAR(45) NULL,
PRIMARY KEY (Dates))';
select @s
exec (@s);
END
在您的代码中,错误是@下面
SET @s = CONCAT('CREATE TABLE `test`.',tname,'(
`Dates` DATE NOT NULL,
`ncl1104` VARCHAR(45) NULL,
`ncl1204` VARCHAR(45) NULL,
PRIMARY KEY (`Dates`)'); <-- Here ) outside quote