У меня есть длинный скрипт, который мне нужно запустить в нескольких разных базах данных (все с одинаковыми таблицами и именами полей).
Я хотел бы сделать что-то вроде этого:
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; проверьте правильность синтаксиса в строке, близкой к @TABLE, в руководстве, соответствующем вашей версии сервера MySQL, в строке ... "Как видите, строка 10 работает нормально ...
Можно ли ссылаться на таблицу в базе данных с переменной?
// Спасибо.