2017-05-10 11 views
0

私は一般にteradataとSQLを初めて使用しています。基礎となる表のDDL変更後にビューが自動的に更新されますか?

私は、テーブルSCHOOLにid、name、roleの列があるとします。そして、この表の上には、次のようにビューが構築されています。

教師を選択して元の場所に戻します。

私はSCHOOLに新しい列を追加します。たとえば、subject_nameです。 TEACHERがこの新しい列の取得を開始するようにCREATE OR REPLACE VIEWステートメントを再実行する必要がありますか、動的であるかどうかを確認して、次回の呼び出し時に新しい列を自動的に取得します。

+0

何が起こるか試してみてください。 –

+0

テーブル値関数を使用する場合(テラデータがこれを取得しているかどうかわからない場合) – maSTAShuFu

+1

'CREATE OR REPLACE'はTeradataでは無効です。これはOracle構文です。標準SQLによれば、ビューは作成時に解決されるため、新しい列は自動的には含まれません。 'SHOW QUALIFIED SELECT * FROM TEACHER;'によって返された内部ソースコードを参照してください。 – dnoeth

答えて

0

これらはありません。 "select * from"を再コンパイルする必要があります。

+0

確認していただきありがとうございます。 –

0

テーブルを変更するたびに、ビューを置き換える必要があります。
ビュー定義の「select *」は、「ビューが作成された時点でテーブルからすべての列を選択する」ことを意味します。後で表が変更された場合(列の追加または削除によって)、ビューは矛盾する可能性があります。 そのため、ビュー内のすべての列の名前を「*」を使用するほうが好きな人もいます。

関連する問題