2016-07-25 5 views
2

同じステートメントを何度も書き込まずにHSQLのビューを更新したいと思います。 ID、First_NAME、LAST_NAMEのテーブルCONTACTSがあります。また、私は私が私のテーブルに新しい列を追加した後、私は私のビューを更新するにはどうすればよいHSQLのビューを更新する

CREATE VIEW IDGREATERTHREE AS SELECT * FROM CONTACTS WHERE ID > 3; 

で作成され、このテーブルのビューを、持っています。私も午前

ALTER VIEW IDGREATERTHREE COMPILE; 

:私は、Oracleのように同じように私の無効なビューをリフレッシュする方法を見つけるしたいと思います

ALTER VIEW IDGREATERTHREE AS SELECT * FROM CONTACTS WHERE ID > 3; 

:私はせずにこのようなものを私のテーブルを更新したいです無効なビューだけを選択する方法を探しています。 SELECT * FROM INFORMATION_SCHEMA.VIEWSでは、無効なビューと無効でないビューとの間に差異は見られません。

答えて

0

この解決策は、ON DDLトリガーを書くことです。

このON DDLトリガーでは、テーブルを変更するかどうかを確認します。

この場合、動的SQLを使用してビューを再作成します。これはとタグ付けされています)で実行できます。トリガーと動的SQLをインターネット上に作成する方法については、豊富なドキュメントがあります。

0

HSQLDBは​​無効なビューを持つことはできません。ビューを作成すると、SELECT * FROM CONTACTSが実際の列名に展開されます。表に列を追加すると、ビューは元の列名で再コンパイルされ、新しい列は含まれません。