Redshift 错误:关系“临时表”不存在

Posted

技术标签:

【中文标题】Redshift 错误:关系“临时表”不存在【英文标题】:Redshift ERROR: relation "Temp table" does not exist 【发布时间】:2015-11-30 10:38:48 【问题描述】:

在 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 仍然返回相同的错误

【问题讨论】:

【参考方案1】:

更新 1 中的策略成功。问题是:

临时表仅在您的会话期间存在 您已经创建了表格。

【讨论】:

【参考方案2】:

尝试用这种方式创建临时表

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;

【讨论】:

感谢您的回复。通过从临时表中选择尝试仍然相同的错误

以上是关于Redshift 错误:关系“临时表”不存在的主要内容,如果未能解决你的问题,请参考以下文章

SQL 使用临时表创建视图

删除由 Amazon Redshift 创建的临时表

RedShift 临时表中的编码

将排序键和压缩用于带有 Redshift 的临时表

临时表上的 distkey 和 sortkey - Redshift

我们应该在 Redshift 的存储过程中使用 udf