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