我是Snowflake的新手,我已经用以下代码在视图(123 Dummy)上创建了一个表(123
create or replace table 123 as select * from 123Dummy;
该视图有10条记录,默认情况下,该表也有10条记录.问题是,当对视图进行更新时,如何在表中获得视图的更新版本?例如,当视图中的记录数增加到15个时,如果我对表运行SELECT*,它仍将具有创建表时的记录数(10).
有没有办法刷新表格?
我是Snowflake的新手,我已经用以下代码在视图(123 Dummy)上创建了一个表(123
create or replace table 123 as select * from 123Dummy;
该视图有10条记录,默认情况下,该表也有10条记录.问题是,当对视图进行更新时,如何在表中获得视图的更新版本?例如,当视图中的记录数增加到15个时,如果我对表运行SELECT*,它仍将具有创建表时的记录数(10).
有没有办法刷新表格?
CREATE TABLE … AS SELECT (CTAS)
用于创建表,并使用提供的SQL查询立即填充该表.在之后的SELECT查询中,创建的表和依赖对象之间没有任何联系.
CREATE TABLE tab_trg
AS
SELECT * FROM tab_src;
当更新tab_src
时将触发tab_trg
的自动更新的期望是无效的.
选项:
创建视图而不是表格:
CREATE VIEW tab_trg AS SELECT * FROM tab_src;
个
定期重新创建表(在调度程序外部或TASK):
CREATE OR REPLACE TABLE tab_trg COPY GRANTS AS SELECT * FROM tab_src;
个
等待新功能-Dynamic Tables:
动态表是Snowflake中的一种新的表类型,它允许团队使用简单的SQL语句来声明性地定义数据管道的结果.动态表格还会在数据更改时自动刷新,仅对自上次刷新以来的新更改进行操作.
CREATE [ OR REPLACE ] DYNAMIC TABLE LAG = ' { seconds | minutes | hours | days }' WAREHOUSE = AS SELECT