ariáveis @MySQL armazenando o nome do banco de dados
Tenho um script longo que preciso executar em vários bancos de dados diferentes (todos com as mesmas tabelas e nomes de campos
O que eu gostaria de fazer é algo como isto:
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`;
Na linha 10, recebo um erro (não estou surpreso): "Linha de script: 10 Você tem um erro na sintaxe SQL; verifique o manual que corresponde à versão do servidor MySQL para obter a sintaxe correta perto de '@SOURCE_DATABASE .tableFoo
' na linha..."
Então eu tentei este insted para a linha 10:
10 SET @TABLE=CONCAT('`',@SOURCE_DATABASE,'`','.`tableFoo`');
11 INSERT INTO `tableFoo` SELECT * FROM @TABLE;
... e novamente erro "Linha de script: 11 Você tem um erro na sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para obter a sintaxe correta perto de '@TABLE' na linha ..." pode ver, a linha 10 funciona bem ...
xiste alguma maneira de se referir a uma tabela em um banco de dados com uma variáve
// Obrigado