いくつかの異なるデータベース (すべて同じテーブルとフィールド名) で実行する必要がある長いスクリプトがあります。
私がやりたいことは次のようなものです:
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 構文にエラーがあります。'@SOURCE_DATABASE. tableFoo
「行で...」
だから私はこれを10行目に挿入してみました:
10 SET @TABLE=CONCAT('`',@SOURCE_DATABASE,'`','.`tableFoo`');
11 INSERT INTO `tableFoo` SELECT * FROM @TABLE;
...そして再びエラー「スクリプト行: 11 SQL 構文にエラーがあります。行の近くで '@TABLE' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください...」 できるようにほら、10行目は正常に動作します...
変数を使用してデータベース内のテーブルを参照する方法はありますか?
// ありがとうございました。