ALTER TABLE ... MODIFY QUERY 语句
当使用ALTER TABLE ... MODIFY QUERY
语句创建一个物化视图时,可以修改SELECT
查询。当物化视图在没有 TO [db.]name
的情况下创建时使用它。必须启用 allow_experimental_alter_materialized_view_structure
设置。
如果一个物化视图使用TO [db.]name
,你必须先 DETACH 视图。用ALTER TABLE修改目标表,然后 ATTACH之前分离的(DETACH
)视图。
示例
CREATE TABLE src_table (`a` UInt32) ENGINE = MergeTree ORDER BY a;
CREATE MATERIALIZED VIEW mv (`a` UInt32) ENGINE = MergeTree ORDER BY a AS SELECT a FROM src_table;
INSERT INTO src_table (a) VALUES (1), (2);
SELECT * FROM mv;
┌─a─┐
│ 1 │
│ 2 │
└───┘
ALTER TABLE mv MODIFY QUERY SELECT a * 2 as a FROM src_table;
INSERT INTO src_table (a) VALUES (3), (4);
SELECT * FROM mv;
┌─a─┐
│ 6 │
│ 8 │
└───┘
┌─a─┐
│ 1 │
│ 2 │
└───┘