問題の説明
シングルテナントの MySQL データベースをセットアップしています。つまり、クライアントごとに同一のスキーマが 1 つあります。
ここで、クライアントごとに特定のクエリを実行する必要があります。これは、マルチテナント設定 (すべてのクライアントが 1 つのスキーマを共有する) では簡単です。ただし、私のセットアップでは、スキーマを反復する必要があります。より一般的には、名前が変数によって与えられるスキーマにアクセスしたいと考えています。どうすればそれができますか?
私が試したこと
試してみると
USE varSchemaName
(wherevarSchemaName
はvarchar
変数)、エラー メッセージERROR 1314: USE is not allowed in stored procedure が表示されます。試してみる
SELECT * FROM varSchemaName.MyTable
と、 Error Code: 1146. Table 'varSchemaName.MyTable' does not exist が表示されます。どうやらMySQLvarSchemaName
は変数ではなくリテラルと見なします。