我想创建一个表,其名称取自用户定义的变量。以下代码似乎不起作用(我在 CREATE TABLE 行附近遇到 MYSQL 语法错误)
提前感谢您的帮助
SET @ratingsNewTableName = CONCAT('ratings_', 'anotherString');
CREATE TABLE IF NOT EXISTS @ratingsNewTableName (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`user_id` INT(11) NOT NULL,
`movie_id` INT(11) NOT NULL,
`rate` DOUBLE NOT NULL,
`date` DATE NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
最佳答案
SET @sql := CONCAT('CREATE TABLE IF NOT EXISTS ', @tableName,'( id INT(11) NOT NULL AUTO_INCREMENT, user_id INT(11) NOT NULL, movie_id INT(11) NOT NULL, rate DOUBLE NOT NULL, date DATE NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1' );
PREPARE mySt FROM @sql;
EXECUTE mySt;
关于mysql - 在 MySQL 存储过程中使用用户定义变量设置表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3211170/