我想在雪花上使用时间旅行功能并恢复原始表。
我已使用以下命令删除并创建了表:
DROP TABLE "SOCIAL_LIVE"
CREATE TABLE "SOCIAL_LIVE" (...)
在删除表格之前,我想回到原始表格。
我使用了以下代码(将交易ID隐藏到“ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”)
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.
我们如何回到原始表并将其还原到雪花上?
答案 0 :(得分:2)
文档指出:
删除表格后,创建具有相同名称的表格会创建一个 表格的新版本。上表的删除版本 仍然可以使用以下方法还原:
将表的当前版本重命名为其他名称。
使用UNDROP TABLE命令还原以前的版本。
如果您需要更多信息,此页面将非常有用:
https://docs.snowflake.net/manuals/sql-reference/sql/drop-table.html#usage-notes
不过,您将需要删除表才能访问该数据。时间旅行不是仅靠名称来维护。因此,一旦您删除并重新创建了表格,新表格就会拥有自己的新时间旅行。
答案 1 :(得分:0)
声明xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx不能用于指定时间旅行查询的时间。
通常,当我们尝试落后于对象创建时间时,就会遇到错误。尝试将时间旅行选项与偏移选项一起使用。
非常感谢, 斯里加
答案 2 :(得分:0)
一旦您删除表并重新创建具有相同名称的表,您将必须
1。首先将新表名称更改为其他名称
ALTER TABLE t1 RENAME TO t1_Backup;
然后使用undrop命令重新删除已删除的表
删除表t1;
答案 3 :(得分:0)
看起来有3个常见的原因可以看到错误,并提供了解决方案:
SELECT
,BEGIN
,COMMIT
和DML(INSERT
,UPDATE
等)。 See documentation here。