Обходной путь для столбцов идентификации Teradata и проблемы с изменчивыми / временными таблицами

Я немного новичок в 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;

ОШИБКА: CREATE TABLE AS в настоящее время не поддерживает столбцы идентификаторов.

Есть ли способ выбрать столбцы идентификаторов в энергозависимой / временной таблице в Teradata? Есть ли обходные пути для этой ошибки? Кроме того, кто-нибудь знает, почему вы не можете выбрать столбцы идентификаторов в изменчивой таблице? (Я привык к SQL Server, и это вообще не проблема.)

1 ответ

Решение

Это действительно странное ограничение, даже приведение типов к VarChar завершается неудачно с тем же сообщением об ошибке.

Но есть обходной путь, поместите Select в производную таблицу:

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;
Другие вопросы по тегам