RESTORE TABLE
描述
RESTORE TABLE
语句用于将表的恢复至某个特定版本或时间点。
语法
RESTORE TABLE table_identifier TO VERSION table_version
参数
table_identifier
指定要恢复的表名。表名可以用数据库名称限定。
语法:
[ database_name. ] table_name
。table_version
指定要恢复的表的版本。版本号应当为非负整数。
示例
-- 创建表并插入3条数据
CREATE TABLE person (name STRING, id INT);
INSERT INTO person VALUES ('zhang3', 1);
INSERT INTO person VALUES ('li4', 2);
INSERT INTO person VALUES ('wang5', 3);
-- 查询表的数据以及历史记录
SELECT * FROM person;
+------+---+
| name| id|
+------+---+
|zhang3| 1|
| li4| 2|
| wang5| 3|
+------+---+
DESCRIBE HISTORY person;
+-------+------+--------------------+----+----+--------------------+----------+---------+----+
|version|action| description|size|rows| commitTime|timeTravel|worksheet|user|
+-------+------+--------------------+----+----+--------------------+----------+---------+----+
| 2|insert|default action de...| 606| 1|2024-10-12 01:39:...| 1秒前| 112| 1|
| 1|insert|default action de...| 592| 1|2024-10-12 01:39:...| 1秒前| 112| 1|
| 0|insert|default action de...| 610| 1|2024-10-12 01:39:...| 1秒前| 112| 1|
+-------+------+--------------------+----+----+--------------------+----------+---------+----+
-- 恢复至版本1
RESTORE TABLE person TO VERSION 1;
-- 查询恢复后的表数据
SELECT * FROM person;
+------+---+
| name| id|
+------+---+
|zhang3| 1|
| li4| 2|
+------+---+
-- 查询表的历史记录
DESCRIBE HISTORY person;
+-------+--------+--------------------+----+----+--------------------+----------+---------+----+
|version| action| description|size|rows| commitTime|timeTravel|worksheet|user|
+-------+--------+--------------------+----+----+--------------------+----------+---------+----+
| 3|rollback| 回到版本1| 0| -1|2024-10-12 01:44:...| 1秒前| 112| 1|
| 2| insert|default action de...| 606| 1|2024-10-12 01:44:...| 1秒前| 112| 1|
| 1| insert|default action de...| 592| 1|2024-10-12 01:44:...| 1秒前| 112| 1|
+-------+--------+--------------------+----+----+--------------------+----------+---------+----+