Я еще не проверил ваше решение. Я должен был идти дальше и решить это так же, как и до сих пор. Я вернусь, когда проверил это.
я есть длинный скрипт, который мне нужно запустить на нескольких разных базах данных (все с одинаковыми таблицами и именами полей).
Я хотел бы сделать что-то вроде этого:
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
'на линии ... "
Итак, я попробовал это insted для строки 10:
10 SET @TABLE=CONCAT('`',@SOURCE_DATABASE,'`','.`tableFoo`');
11 INSERT INTO `tableFoo` SELECT * FROM @TABLE;
... и снова ошибка "Строка сценария: 11 У вас есть ошибка в синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '@TABLE' в строке ..." Как вы можете видите, строка 10 работает нормально ...
Есть ли способ ссылаться на таблицу в базе данных с переменной?
// Спасибо.