首页 > 解决方案 > 如何使用特定的事务 ID 编写代码以进行时间旅行

问题描述

我想在雪花上使用时间旅行功能并恢复原始表格。

我已使用以下命令删除并创建了表:

DROP TABLE "SOCIAL_LIVE"
CREATE  TABLE "SOCIAL_LIVE" (...)

我想在放下桌子之前回到原来的桌子。

我使用了以下代码(将交易 ID 隐藏为“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”)

Select "BW"."PUBLIC"."SOCIAL_LIVE".* From "BW"."PUBLIC"."SOCIAL_LIVE";
select * from SOCIAL_LIVE before(statement => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

收到一条错误消息:

Statement xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx cannot be used to specify time for time travel query.

我们怎样才能回到原来的表并在雪花上恢复它?

标签: snowflake-cloud-data-platform

解决方案


该文档指出:

删除表后,创建具有相同名称的表会创建该表的新版本。以前表的删除版本仍然可以使用以下方法恢复:

  1. 将表的当前版本重命名为不同的名称。

  2. 使用 UNDROP TABLE 命令恢复以前的版本。

如果您需要更多信息,此页面很有用:

https://docs.snowflake.net/manuals/sql-reference/sql/drop-table.html#usage-notes

不过,您需要取消删除表才能访问该数据。时间旅行并不仅仅靠名字来维护。因此,一旦您删除并重新创建了表,新表就有了自己的新时间旅行。


推荐阅读