我无法让我的prepare语句在MySQL 5.6.14中运行;这是有问题的代码块:
SET @backupDate = DATE(NOW());
SET @renameTable = CONCAT('RENAME TABLE activeDirectoryData TO actDirBackup-', @backupDate);
PREPARE goRenameTable FROM @renameTable;
EXECUTE goRenameTable;
DEALLOCATE PREPARE goRenameTable;
脚本在prepare语句处停止,出现以下错误:
错误代码:1064。您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在第1行'-2013-11-06'附近使用的语法
知道这里有什么问题吗?
答案 0 :(得分:1)
来自actDirBackup-
的值@backupDate
不是有效的表名,您必须将其转义,如下所示:
SET @renameTable = CONCAT('RENAME TABLE activeDirectoryData TO `actDirBackup-',
@backupDate, '`');