MySQL 関数またはプロシージャを使用して、クエリで使用できるテーブル名を返すことはできますか?
何かのようなもの
SELECT * FROM get_db_table_name(2342352412);
whereは、パラメータとして a を受け入れ、そのユーザーが存在する db.table を返すget_db_table_name()ユーザー定義関数です。user_idMySQL が構文に不満を持っているため、この方法でこれを行うことができませんでした (私の推測では、関数の戻り値の型を定義する必要がVARCHAR(30)ありましたが、それは間違っているか不可能でした)。それで、これは可能ですか?
話は、本質的にシャードであるデータベースがいくつかあるということです。user_1それらを 、user_2、などと呼びましょう。
また、 tableなどの s をemails持つレコードを含む単一のテーブルもあります。user_iduser_1.usersuser_2.users
ID を見るだけで ID がどのテーブルからのものかを計算する方法を知っているので、入力を受け入れて db.table 名を返す関数を使用したいだけです。
ありがとうございました!
PS上記のSELECTクエリを、適切なテーブルでJOINを実行することにより、適切なdb /テーブルからユーザーの名前を取得するVIEW定義として使用したいと思います。