Teradata标识列和volatile / temp表问题的解决方法

时间:2018-04-17 17:58:51

标签: teradata temp-tables identity-column

我对Teradata有些新意,无法理解为什么我无法在易失性表中选择标识列。执行以下操作时,我收到以下错误。

dt <- data.table(x = c('A,B,C,D,E', 'A,C,D', 'B,C,C,D'))
  

错误:CREATE TABLE AS目前不支持标识列。

有没有办法在Teradata中的volatile / temporary表中选择标识列?此错误的任何变通办法?此外,有谁知道为什么你不能在易失性表中选择标识列? (我习惯使用SQL Server,这根本不是问题。)

1 个答案:

答案 0 :(得分:2)

这确实是一个奇怪的限制,即使对VarChar进行类型转换也会失败并显示相同的错误消息。

但是有一个解决方法,将Select in a Derived Table:

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;