在Teradata中,我想创建一个全局临时表,然后在其他查询中引用此全局表。我不想创建一个易失性表,因为我通过另一个前端使用Teradata,并且前端必须能够判断临时表是否存在,因此不能选择volatile表,因为它不是存在于数据字典中。
这是我创建临时表hihihi的代码。
create set global temporary table hihihi as
(select
*
from
db.a_permanent_table)
with no data
on commit preserve rows;
select * from hihihi;
根据我所做的研究,我无法使用
临时表的带数据
选项(例如,见link)。
所以我必须这样做没有数据
选项。我认为它还说当我引用这个临时表时,数据将会实现"。
但是当我按以下方式选择时
select * from hihihi;
什么都没有?我对全球临时表的理解中缺少什么?
答案 0 :(得分:1)
全局临时表实际上只是表的定义。当用户访问该表时,它仅为该用户具体化。如果另一个用户访问该表,则实现另一个与另一个完全分离的实例。如果访问临时表的第一个语句不是插入(例如select *),则它将没有行。
向下滚动到示例部分here,我认为这应该会有所帮助。