我对 Teradata 有点陌生,不明白为什么我不能在易失性表中选择一个身份列。执行类似以下内容的操作时,我收到以下错误。
create multiset volatile table Temp_Events as
(
select es.eventSettingId, -- this is an identity column
evt.lob
from ForecastDevDW.cal_eventSettings es
join ForecastDevDW.cal_eventTypes evt
on evt.eventTypeId = es.eventTypeId
)
with data
primary index (eventSettingId)
on commit preserve rows;
错误:创建表为当前不支持标识列。
有没有办法在 Teradata 中的易失性/临时表中选择身份列?此错误有什么解决方法吗?另外,有谁知道为什么你不能在易失性表中选择标识列?(我已经习惯了SQL Server,这根本不是问题。
这确实是一个奇怪的限制,即使类型转换为 VarChar 也会失败并显示相同的错误消息。
但是有一个解决方法,将选择放在派生表中:
create multiset volatile table Temp_Events as
(
select *
from
(
select es.eventSettingId, -- this is an identity column
evt.lob
from ForecastDevDW.cal_eventSettings es
join ForecastDevDW.cal_eventTypes evt
on evt.eventTypeId = es.eventTypeId
) as dt
)
with data
primary index (eventSettingId)
on commit preserve rows;