Snowflake cloud data platform Snowflake-在替换表之前,是否希望恢复到表的以前版本

Snowflake cloud data platform Snowflake-在替换表之前,是否希望恢复到表的以前版本,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我需要将表恢复到运行CREATE或REPLACE语句之前的状态,即该表仍然填充 我可以在历史记录中看到查询ID,但我一辈子都记不起我是如何恢复更改的这假设您已启用/可用所需的时间旅行 在所需的时间点克隆表 将表重命名为所需的任何名称 将克隆重命名为原始表名 此处介绍了在某个时间点进行克隆:这假设您已启用/可用所需的时间旅行 在所需的时间点克隆表 将表重命名为所需的任何名称 将克隆重命名为原始表名 此处介绍了在某个时间点进行克隆:可以做到这一点,但由于您已经运行了CREATE或REPLACE,因此

我需要将表恢复到运行CREATE或REPLACE语句之前的状态,即该表仍然填充


我可以在历史记录中看到查询ID,但我一辈子都记不起我是如何恢复更改的

这假设您已启用/可用所需的时间旅行

在所需的时间点克隆表 将表重命名为所需的任何名称 将克隆重命名为原始表名
此处介绍了在某个时间点进行克隆:

这假设您已启用/可用所需的时间旅行

在所需的时间点克隆表 将表重命名为所需的任何名称 将克隆重命名为原始表名 此处介绍了在某个时间点进行克隆:

可以做到这一点,但由于您已经运行了CREATE或REPLACE,因此首先必须将新创建的表移动到不同的架构中:

例如:

use database dev;

create table public.t1 (id int);
insert into public.t1 (id) values (1), (2);

create or replace table public.t1 (id int);

create schema temp_schema;

alter table public.t1 rename to temp_schema.t1;

undrop table public.t1;
可以做到这一点,但由于您已经运行了CREATE或REPLACE,因此首先必须将新创建的表移动到不同的架构中:

例如:

use database dev;

create table public.t1 (id int);
insert into public.t1 (id) values (1), (2);

create or replace table public.t1 (id int);

create schema temp_schema;

alter table public.t1 rename to temp_schema.t1;

undrop table public.t1;

Francesco&Nick已经提供了解决方案,但这里有一个更详细的示例。。。基本上,您需要重命名当前表并取消删除旧表。这就像是一个拳头入最后出的堆栈,当前表位于顶部,您需要将其弹出并重命名以获得上一个表:

不过,我在SQL中有一些注释供您遵循:

-创建初始表 创建表Don_drop_mecol1 varchar,col2 varchar ; -插入4行某些示例数据 将覆盖插入到不删除值中 “col1_row1”、“col2_row1”, “col1_row2”、“col2_row2”, “col1_row3”、“col2_row3”, “col1_row4”、“col2_row4” ; -不小心换了桌子?。新表有一个额外的列来证明更改。 创建或替换表don_drop_mecol1 varchar、col2 varchar、col3 varchar; -现在,新表不包含任何数据,但有一个额外的列 从Don_drop_me中选择*; - +--+--+--+ -| COL1 | COL2 | COL3| - +--+--+--+ -查看历史记录上的表。第一行是当前表,第二行是 -行是我们替换的第一个表 显示历史记录表,如“不要放弃我”; - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -|创建|名称|数据库|名称|模式|名称|种类|注释|聚类|行|字节|所有者|保留|时间|删除|自动|聚类|更改|跟踪|搜索|优化|搜索|优化|进度|搜索|优化|字节|是外部的| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -| 2021-02-26 04:56:23.948-08:00 |不要放弃我|西蒙| DB |公共|表格| | 0 | 0 |系统管理员| 1 |空|关|关|空|空|| -2021-02-26 04:56:19.610-08:00不要丢下我西蒙DB公共表格1024系统管理员1:2021-02-26 04:56:24.073-08:00关闭| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -我们需要重命名现有对象,将其从堆栈顶部移出,以便恢复第一个对象 将table don_drop_me重命名为重命名的don_drop_me; -现在再次查看历史记录中的表。您可以看到,创建的第一个表已移动到堆栈的顶部 显示历史记录表,如“不要放弃我”; - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -|创建|名称|数据库|名称|模式|名称|种类|注释|聚类|行|字节|所有者|保留|时间|删除|自动|聚类|更改|跟踪|搜索|优化|搜索|优化|进度|搜索|优化|字节|是外部的| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -2021-02-26 04:56:19.610-08:00不要丢下我西蒙DB公共表格1024系统管理员1:2021-02-26 04:56:24.073-08:00关闭| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+-------- +----------+--------------+-------------+------+ -现在松开该表并证明它是旧表,即有4行2列的表 放下桌子,别把我放下; 从Don_drop_me中选择*; - +-----+-----+ -| COL1 | COL2| - +-----+-----+ -| col1_row1 | col2_row1| -| col1_row2 | col2_row2| -| col1_row3 | col2_row3| -| col1_row4 | col2_row4| - +-----+-----+
Francesco&Nick已经提供了解决方案,但这里有一个更详细的示例。。。基本上,您需要重命名当前表并取消删除旧表。这就像是一个拳头入最后出的堆栈,当前表位于顶部,您需要将其弹出并重命名以获得上一个表:

不过,我在SQL中有一些注释供您遵循:

-创建初始表 创建表Don_drop_mecol1 varchar,col2 varchar ; -插入4行某些示例数据 将覆盖插入到不删除值中 “col1_row1”、“col2_row1”, “col1_row2”、“col2_row2”, “col1_row3”、“col2_row3”, “col1_row4”、“col2_row4” ; -不小心换了桌子?。新表有一个额外的列来证明更改。 创建或替换表don_drop_mecol1 varchar、col2 varchar、col3 varchar; -现在,新表不包含任何数据,但有一个额外的列 从Don_drop_me中选择*; - +--+--+--+ -| COL1 | COL2 | COL3| - +--+--+--+ -查看历史记录上的表。第一行是当前表,第二行是 -行是我们替换的第一个表 显示历史记录表,如“不要放弃我”; - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -|创建|名称|数据库|名称|模式|名称|种类|注释|聚类|行|字节|所有者|保留|时间|删除|自动|聚类|更改|跟踪|搜索|优化|搜索|优化|进度|搜索|优化|字节|是外部的| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -| 2021-02-26 04:56:23.948-08:00 |不要放弃我|西蒙| DB |公共|表格| | 0 | 0 |系统管理员| 1 |空|关|关|空|空|| -2021-02-26 04:56:19.610-08:00不要丢下我西蒙DB公共表格1024系统管理员1:2021-02-26 04:56:24.073-08:00关闭| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -我们需要重命名现有对象,将其从堆栈顶部移出,以便恢复第一个对象 将table don_drop_me重命名为重命名的don_drop_me; -现在再次查看历史记录中的表。您可以看到,创建的第一个表已移动到堆栈的顶部 显示历史记录表,如“不要放弃我”; - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -|创建|名称|数据库|名称|模式|名称|种类|注释|聚类|行|字节|所有者|保留|时间|删除|自动|聚类|更改|跟踪|搜索|优化|搜索|优化|进度|搜索|优化|字节|是外部的| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -2021-02-26 04:56:19.610-08:00不要丢下我西蒙DB公共表格1024系统管理员1:2021-02-26 04:56:24.073-08:00关闭| - +---------------+------+-------+------+---+----+-----+--+---+----+-------+---------------+----------+--------+----------+--------------+-------------+------+ -现在松开该表并证明它是旧表,即有4行2列的表 放下桌子,别把我放下; 从Don_drop_me中选择*; - +-----+-----+ -| COL1 | COL2| - +-----+-----+ -| col1_row1 | col2_row1| -| col1_row2 | col2_row2| -| col1_row3 | col2_row3| -| col1_row4 | col2_row4| - +-----+-----+