我有一个长脚本需要在多个不同的数据库上运行(所有数据库的表和字段名称相同)。
我想要做的是像这样:
1 SET @TARGET_DATABASE = 'beta'
2 SET @SOURCE_DATABASE = 'sandbox';
3
4 CREATE DATABASE IF NOT EXISTS @TARGET_DATABASE;
5 USE @TARGET_DATABASE;
...
10 INSERT INTO `tableFoo` SELECT * FROM @SOURCE_DATABASE.`tableFoo`;
在第10行,我遇到了一个错误(并不意外):“脚本行:10您的SQL语法有误;请检查与您的MySQL服务器版本对应的手册,以获取正确的语法使用方式,接近@SOURCE_DATABASE。 tableFoo
”
所以我尝试了以下内容来替换第10行:
10 SET @TABLE=CONCAT('`',@SOURCE_DATABASE,'`','.`tableFoo`');
11 INSERT INTO `tableFoo` SELECT * FROM @TABLE;
...再次出现错误:“脚本行:11,您的SQL语法有误,请检查与您的MySQL服务器版本相对应的手册以获取正确的语法使用方法,靠近'@TABLE'的行…”正如您所看到的,第10行工作正常...
是否有办法通过变量引用数据库中的表?
//谢谢。