Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

UNDROP

取消表的删除操作。

从 ClickHouse 23.3 版本开始,执行 DROP TABLE 后,在 database_atomic_delay_before_drop_table_sec 设置的时间内 (默认 8 分钟) ,可以使用 UNDROP TABLE 恢复 Atomic 数据库中的表。 从 Atomic 数据库删除的表会列在 system.dropped_tables 中。

对于 ClickHouse Cloud 中的 Shared 数据库,此时间段改由 database_shared_drop_table_delay_seconds 控制,默认值为 8 小时。 从 Shared 数据库删除的表不会列在 system.dropped_tables 中。

如果你有一个与已删除表关联且不带 TO 子句的 materialized view,那么还需要对该视图的内部表执行 UNDROP。

语法:

UNDROP TABLE [db.]name [UUID '<uuid>'] [ON CLUSTER cluster]

示例

CREATE TABLE tab
(
    `id` UInt8
)
ENGINE = MergeTree
ORDER BY id;

DROP TABLE tab;

SELECT *
FROM system.dropped_tables
FORMAT Vertical;
Row 1:
──────
index:                 0
database:              default
table:                 tab
uuid:                  aa696a1a-1d70-4e60-a841-4c80827706cc
engine:                MergeTree
metadata_dropped_path: /var/lib/clickhouse/metadata_dropped/default.tab.aa696a1a-1d70-4e60-a841-4c80827706cc.sql
table_dropped_time:    2023-04-05 14:12:12

1 row in set. Elapsed: 0.001 sec.
UNDROP TABLE tab;

SELECT *
FROM system.dropped_tables
FORMAT Vertical;

```response
Ok.

0 rows in set. Elapsed: 0.001 sec.
DESCRIBE TABLE tab
FORMAT Vertical;
Row 1:
──────
name:               id
type:               UInt8
default_type:
default_expression:
comment:
codec_expression:
ttl_expression:

相关: DROPDETACHATTACH

Navigation