📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

CREATE SNAPSHOT TAG



在 FUSE 表上创建一个具名快照标签。快照标签会为表在某个特定时间点的状态添加书签,使你之后可以通过 AT 子句查询该状态。

语法

ALTER TABLE [<database_name>.]<table_name> CREATE TAG <tag_name> [ AT ( SNAPSHOT => '<snapshot_id>' | TIMESTAMP => <timestamp> | STREAM => <stream_name> | OFFSET => <time_interval> | TAG => <tag_name> ) ] [ RETAIN <n> { DAYS | SECONDS } ]

参数

参数描述
tag_name标签名称。必须在表内唯一。
AT指定标签引用哪个快照。如果省略,则标签引用当前(最新)快照。支持与 AT 子句相同的选项,另外还支持 TAG,用于从现有标签复制。
RETAIN设置自动过期时间。达到指定时长后,标签会在下一次执行 VACUUM 操作时被移除。不使用 RETAIN 时,标签会一直保留,直到被显式删除。

示例

为当前快照打标签

SET enable_experimental_table_ref = 1; CREATE TABLE t1(a INT, b STRING); INSERT INTO t1 VALUES (1, 'a'), (2, 'b'), (3, 'c'); -- Create a tag at the current snapshot ALTER TABLE t1 CREATE TAG v1_0; -- Insert more data INSERT INTO t1 VALUES (4, 'd'), (5, 'e'); -- Query the tagged snapshot (returns 3 rows, not 5) SELECT * FROM t1 AT (TAG => v1_0) ORDER BY a;

基于现有引用创建标签

-- Copy from an existing tag ALTER TABLE t1 CREATE TAG v1_0_copy AT (TAG => v1_0); -- Tag a specific snapshot ALTER TABLE t1 CREATE TAG before_migration AT (SNAPSHOT => 'aaa4857c5935401790db2c9f0f2818be'); -- Tag the state from 1 hour ago ALTER TABLE t1 CREATE TAG hourly_checkpoint AT (OFFSET => -3600);

创建带自动过期时间的标签

-- Tag expires after 7 days ALTER TABLE t1 CREATE TAG temp_tag RETAIN 7 DAYS; -- Tag expires after 3600 seconds ALTER TABLE t1 CREATE TAG debug_snapshot RETAIN 3600 SECONDS;

文档内容是否有帮助?