slug: /zh/sql-reference/statements/alter/view sidebar_position: 50

sidebar_label: VIEW

ALTER TABLE … MODIFY QUERY 语句 {#alter-modify-query}

当使用ALTER TABLE … MODIFY QUERY语句创建一个物化视图时,可以修改SELECT查询。当物化视图在没有 TO [db.]name 的情况下创建时使用它。必须启用 allow_experimental_alter_materialized_view_structure设置。

如果一个物化视图使用TO [db.]name,你必须先 DETACH 视图。用ALTER TABLE修改目标表,然后 ATTACH之前分离的(DETACH)视图。

示例

  1. CREATE TABLE src_table (`a` UInt32) ENGINE = MergeTree ORDER BY a;
  2. CREATE MATERIALIZED VIEW mv (`a` UInt32) ENGINE = MergeTree ORDER BY a AS SELECT a FROM src_table;
  3. INSERT INTO src_table (a) VALUES (1), (2);
  4. SELECT * FROM mv;
  1. ┌─a─┐
  2. 1
  3. 2
  4. └───┘
  1. ALTER TABLE mv MODIFY QUERY SELECT a * 2 as a FROM src_table;
  2. INSERT INTO src_table (a) VALUES (3), (4);
  3. SELECT * FROM mv;
  1. ┌─a─┐
  2. 6
  3. 8
  4. └───┘
  5. ┌─a─┐
  6. 1
  7. 2
  8. └───┘

ALTER LIVE VIEW 语句 {#alter-live-view}

ALTER LIVE VIEW ... REFRESH 语句刷新一个 实时视图. 参见 强制实时视图刷新.