mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-14 18:32:29 +00:00
45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
|
---
|
||
|
toc_priority: 50
|
||
|
toc_title: VIEW
|
||
|
---
|
||
|
|
||
|
# ALTER TABLE … MODIFY QUERY Statement {#alter-modify-query}
|
||
|
|
||
|
You can modify `SELECT` query that was specified when a [materialized view](../create/view.md#materialized) was created with the `ALTER TABLE … MODIFY QUERY` statement. Use it when the materialized view was created without the `TO [db.]name` clause. The `allow_experimental_alter_materialized_view_structure` setting must be enabled.
|
||
|
|
||
|
If a materialized view uses the `TO [db.]name` construction, you must [DETACH](../detach.md) the view, run [ALTER TABLE](index.md) query for the target table, and then [ATTACH](../attach.md) the previously detached (`DETACH`) view.
|
||
|
|
||
|
**Example**
|
||
|
|
||
|
```sql
|
||
|
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;
|
||
|
```
|
||
|
```text
|
||
|
┌─a─┐
|
||
|
│ 1 │
|
||
|
│ 2 │
|
||
|
└───┘
|
||
|
```
|
||
|
```sql
|
||
|
ALTER TABLE mv MODIFY QUERY SELECT a * 2 as a FROM src_table;
|
||
|
INSERT INTO src_table (a) VALUES (3), (4);
|
||
|
SELECT * FROM mv;
|
||
|
```
|
||
|
```text
|
||
|
┌─a─┐
|
||
|
│ 6 │
|
||
|
│ 8 │
|
||
|
└───┘
|
||
|
┌─a─┐
|
||
|
│ 1 │
|
||
|
│ 2 │
|
||
|
└───┘
|
||
|
```
|
||
|
|
||
|
## ALTER LIVE VIEW Statement {#alter-live-view}
|
||
|
|
||
|
`ALTER LIVE VIEW ... REFRESH` statement refreshes a [Live view](../create/view.md#live-view). See [Force Live View Refresh](../create/view.md#live-view-alter-refresh).
|