Я еще не проверил ваше решение. Я должен был идти дальше и решить это так же, как и до сих пор. Я вернусь, когда проверил это.

я есть длинный скрипт, который мне нужно запустить на нескольких разных базах данных (все с одинаковыми таблицами и именами полей).

Я хотел бы сделать что-то вроде этого:

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 работает нормально ...

Есть ли способ ссылаться на таблицу в базе данных с переменной?

// Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос