0

2 つのテーブルから * を選択したいのですが、列名の重複を避けるために、各テーブルの列名に文字列のプレフィックスを付けます。

たとえば、次のようなビューが必要です。

CREATE VIEW view_user_info as (
  SELECT   
    u.*,
    ux.*
  FROM
    user u,
    user_ex ux
);

すべての結果の各列には、テーブルの名前がプレフィックスとして付けられています。

例えば

user_ID
user_EMAIL
user_ex_ID
user_ex_TITLE
user_ex_SIN

私は概念を持っているSQLフィドルをここに入れましたが、もちろん正しい構文ではありません(可能であれば)。

私はMySqlを使用していますが、汎用ソリューションが存在する場合は歓迎します!

編集:コメントの1つで述べたように、各フィールドにエイリアスを付けることができることを認識しています。それが私が現在行っていることですが、プロジェクトの開始時に、テーブルとビューが変更されるたびに同期する必要があることに気付きました。私はビューが各テーブルのすべてを持っているのが好きで、必要なものを手動で選択します。怠惰なアプローチですが、これにより、より迅速に反復し、必要な場合にのみ最適化することができます。

4

1 に答える 1

1

プロジェクトの開始時に、テーブルとビューが変更されるたびに同期しなければならないことに気付きました。

あなたがやろうとしていることは標準 SQL では実際にはサポートされておらず、開発中にデータベース構造を変更し続けているため、そのSELECTステートメントを再作成する小さなスクリプトを作成するのが最善の方法ではないかと思います。選択した開発言語でメソッド呼び出しにラップすることはできますか?

基本的にINFORMATION_SCHEMA、おそらく結合を介して、対象のテーブルと列をクエリし、結果を SQL スタイルで書き出す必要があります。

次に、重要なデータベース構造の変更を行うたびにスクリプトを実行し、コードが魔法のように変化するのを確認します。

于 2013-11-05T20:52:03.407 に答える