説明
このステートメントは、マテリアライズドビューのプロパティを変更するために使用します。
権限要件
ALTER MATERIALIZED VIEW ステートメントを実行するには、現在のユーザーが操作対象に対する ALTER 権限を持っている必要があります。OceanBaseデータベースの権限に関する詳細は、MySQLモードの権限分類を参照してください。
構文
ALTER MATERIALIZED VIEW [database.]view_name alter_mview_action_list;
alter_mview_action_list:
alter_mview_action [, alter_mview_action ...]
alter_mview_action:
parallel_clause
| REFRESH [nested_refresh_option] [[START WITH expr] [NEXT expr]]
parallel_clause:
NOPARALLEL
| PARALLEL integer
nested_refresh_option:
INDIVIDUAL
| INCONSISTENT
| CONSISTENT
パラメータ説明
パラメータ |
説明 |
|---|---|
| database. | オプションです。マテリアライズドビューが存在するデータベースを指定します。database. を省略した場合、マテリアライズドビューはデフォルトで現在のセッションが接続しているデータベースに存在します。 |
| view_name | 変更対象のマテリアライズドビューの名前を指定します。
説明OceanBaseデータベースでは、 |
| alter_mview_action_list | マテリアライズドビューに対して実行可能な変更操作のリストです。複数の操作を同時に指定することができ、英字のカンマ(,)で区切ります。詳細については、後述のalter_mview_actionを参照してください。 |
alter_mview_action
parallel_clause:マテリアライズドビューのリフレッシュ並列度を変更します。取り得る値は以下のとおりです:NOPARALLEL:デフォルト設定で、並列度は1です。PARALLEL integer:並列度を指定します。integerの値は1以上の整数です。
例:
-- まずベーステーブルを作成 obclient> CREATE TABLE test_table ( id INT PRIMARY KEY, name VARCHAR(50) ); -- マテリアライズドビューを作成 obclient> CREATE MATERIALIZED VIEW mv1 AS SELECT id, name FROM test_table; -- 並列なしで設定(デフォルト) obclient> ALTER MATERIALIZED VIEW mv1 NOPARALLEL; -- 並列度を5に設定 obclient> ALTER MATERIALIZED VIEW mv1 PARALLEL 5;REFRESH [nested_refresh_option] [[START WITH expr] [NEXT expr]]:ネストされたマテリアライズドビューのリフレッシュポリシーまたはマテリアライズドビューのバックグラウンドリフレッシュタスクの時間間隔を変更します。nested_refresh_option:オプションです。ネストされたマテリアライズドビューのリフレッシュポリシーを表します。INDIVIDUAL:デフォルト値で、独立リフレッシュを表します。INCONSISTENT:カスケード非一貫性リフレッシュを表します。CONSISTENT:カスケード一貫性リフレッシュを表します。
例:
obclient> ALTER MATERIALIZED VIEW mv1 REFRESH INDIVIDUAL;obclient> ALTER MATERIALIZED VIEW mv1 REFRESH INCONSISTENT;obclient> ALTER MATERIALIZED VIEW mv1 REFRESH CONSISTENT;[[START WITH expr] [NEXT expr]]:マテリアライズドビューのバックグラウンドリフレッシュタスクの時間間隔を変更します。[START WITH expr]:オプションです。リフレッシュ計画の開始時刻を表す式です。[NEXT expr]:オプションです。次回のリフレッシュ時刻を表す式です。注意
NEXT句を使用する場合、リフレッシュ計画の時間式は将来の時刻に設定する必要があります。そうでない場合、エラーが発生します。- マテリアライズドビューのリフレッシュタスクを定期的に自動スケジュールする場合は、
NEXTを定義してスケジュール間隔を設定してください。
現在のタイムゾーンの時間を表すには、
sysdate()の使用を推奨します。時間式の例は以下のとおりです:START WITH sysdate() NEXT sysdate() + INTERVAL 1 DAY上記の句は、現在時刻(
sysdate())から毎日1回マテリアライズドビューをリフレッシュすることを意味します。例:
obclient> ALTER MATERIALIZED VIEW mv1 REFRESH START WITH sysdate();リフレッシュ間隔のみを設定:
obclient> ALTER MATERIALIZED VIEW mv1 REFRESH NEXT sysdate() + INTERVAL 1 DAY;開始時刻とリフレッシュ間隔を同時に設定:
obclient> ALTER MATERIALIZED VIEW mv1 REFRESH START WITH sysdate() NEXT sysdate() + INTERVAL 1 DAY;