クエリ内で database() を使用するにはどうすればよいですか? これが私がやろうとしていることの例です:
select database();
「my_table」を返します
SELECT * FROM INFORMATION_SCHEMA.STATISTICS where
table_schema = database() and
table_name = 'my_table' AND index_name = 'my_index' LIMIT 1;
動作しません
SELECT * FROM INFORMATION_SCHEMA.STATISTICS where
table_schema = (select database()) and
table_name = 'my_table' AND index_name = 'my_index' LIMIT 1;
動作しません
SELECT * FROM INFORMATION_SCHEMA.STATISTICS where
table_schema = 'my_table' and
table_name = 'my_table' AND index_name = 'my_index' LIMIT 1;
魔法のように機能します
問題は、クエリ内で database() を評価してクエリを動的にするにはどうすればよいかということです。特定のインデックスが既に存在するかどうかを確認するクエリが必要なので、スクリプトはそれを追加する必要があるかどうかを認識します。