マテリアライズ・ビューの置き換え

マテリアライズ・ビューの基本表を、その表のマテリアライズ・ビューに影響する方法で変更する場合、ビューを使用する照会に対して以下のエラー・メッセージが表示されます。
ERROR:  Base table/view 'WEATHER' attr 'CITY' has changed (precision); 
rebuild view 'WEATHER_V'

このエラーは、基本表 WEATHER にある CITY という名前の列が変更されたことを示しています。 この例では、列が VARCHAR(80) から VARCHAR(100) に変更されました。 したがって、マテリアライズ・ビューをリビルドして、現在の基本表定義を反映するようにする必要があります。

基本表の変更後にビューをリビルドするには、以下のように CREATE OR REPLACE MATERIALIZED VIEW コマンドを使用して、ビューを更新します。

MYDB.SCHEMA(ADMIN)=> CREATE OR REPLACE MATERIALIZED VIEW weather_v AS SELECT 
city, temp_lo, temp_hi FROM weather ORDER BY city;
CREATE MATERIALIZED VIEW

マテリアライズ・ビューを除去して再作成することはしないでください。そのようにすると新しいビューが別のオブジェクト ID で作成されるので、そのマテリアライズ・ビューを参照する他のオブジェクトが影響を受けます。