在 AWS Redshift 下
我创建了一个临时表
select all
*
into temp table #cleaned_fact
from fact_table
limit 100
得到
执行成功
在 0.716 秒内更新了 0 行。
并尝试使用
检查临时表中的数据select *
from #cleaned_fact
出现错误
错误:关系“#cleaned_fact”不存在
====================================================== ====== 更新1.
小心
临时表仅在会话期间存在,使用该表 您已创建表格。
create temp table IF NOT EXISTS #cleaned_fact
(
col1 INT NOT NULL encode delta,
col2 INT NOT NULL encode mostly16,
col3 INT NOT NULL encode runlength,
col4 BIGINT NOT NULL encode mostly32,
);
insert into #cleaned_fact
select *
from fact_channel_posting
limit 100
退货
执行成功
在 3.101 秒内更新了 100 行。
但在另一个会话中 select * from #cleaned_fact 仍然返回相同的错误
尝试用这种方式创建临时表
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
select_statement
CREATE TEMPORARY TABLE IF NOT EXISTS mytable
(id int(11) NOT NULL, PRIMARY KEY (id)) ENGINE=MyISAM;
INSERT IGNORE INTO mytable SELECT id FROM table WHERE xyz;
更新1中的策略成功了。问题是:
临时表仅在会话期间存在,使用该表 您已创建表格。
Redshift 临时表仅存在于一个会话中。一旦会话超时,除了重新创建它之外没有其他选择。