2017-10-29 3 views
0

内のテーブルからすべての列を取得します。私はMYVIEWを編集する場合、動的ビューMySQLでは

CREATE VIEW MyView AS SELECT * FROM MyTable; 

は、アスタリスクが消え、SQLは、すべてのフィールド名が含まれています。たとえば:MyTableというがそれに追加された新しいフィールドを持つ場合

ALTER VIEW MyView AS SELECT field1, field2 FROM MyTable; 

は、私はまた、これらの新しいフィールドを表示するには、ビューの出力を望みます。アスタリスクがリテラル列名に置き換えられないようにするにはどうすればよいですか?

答えて

0

これは反パターンです。 select *でビューを作成しないでください - あなたを噛ませるために戻ってきます。

あなたはINFORMATION_SCHEMA.COLUMNS

+0

を参照したい場合、私はアスタリスクを使用することが一般的に悪い習慣であることを認識していますあなたにいくつかの時間を節約するためにビューのコードを生成するために、自動生成SQL文を書くことができ、しかし、これはあります一般的なツール(テーブルが定期的に変更されることが予想される)のために、特別なケースです。 INFORMATION_SCHEMA.COLUMNSは可能な解決策のように思えますが、私はそれを試みます。 – user966893

+0

ああ、残念ながらINFORMATION_SCHEMA.COLUMNSはロックされた権限のためこの場合には動作しません。他の潜在的なSQLのみの解決策を知っていますか? – user966893