繁体   English   中英

在Teradata中创建易失表时出错

[英]error with creating volatile table in teradata

-drop table r.stray_cust;

CREATE VOLATILE TABLE r.stray_cust
(
CustomerID INTEGER
) 
PRIMARY INDEX ( CustomerID );

INSERT INTO  r.stray_cust
SELECT DISTINCT c.customerid AS customerid
FROM customer c
WHERE c.customerid 
NOT IN (
SELECT a.customerid 
FROM address a );

ON COMMIT PRESERVE ROWS;

select * from r.stray_cust;

持续收到错误消息-查询失败,请查看历史记录以获取详细信息

好吧,您是否查看了历史记录以了解详细信息?

ON COMMIT是CREATE VOLATILE TABLE的一部分,因此您的查询应为:

CREATE VOLATILE TABLE r.stray_cust ( CustomerID INTEGER ) PRIMARY INDEX ( CustomerID )
ON COMMIT PRESERVE ROWS;

INSERT INTO r.stray_cust
SELECT DISTINCT c.customerid AS customerid 
FROM customer c 
WHERE c.customerid NOT IN ( SELECT a.customerid FROM address a );

或一步一步:

CREATE VOLATILE TABLE r.stray_cust AS 
(
  SELECT DISTINCT c.customerid AS customerid 
  FROM customer c 
  WHERE c.customerid NOT IN ( SELECT a.customerid FROM address a )
)
PRIMARY INDEX ( CustomerID )
ON COMMIT PRESERVE ROWS;

插入r.stray_cust;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM