Имеются онлайн-ресурсы для Teradata, такие как SO, администраторы баз данных (Stack Exhcange) и Teradata Developer Exchange. Вероятно, это ваши лучшие источники информации.
Page 43 Teradata SQL языка определения данных - Детальные темы Руководство для Teradata 13.10 состояний:
You can not add an identity column to an existing base table, nor can you add the identity column attribute to an existing column.
Это может показаться утомительным, но этот подход работает очень хорошо, и сводит к минимуму время простоя данных для конечных пользователей. Он хорошо работает и является предпочтительным методом, который мы используем при изменении модели данных в таблицах с миллиардами строк. Вставка данных в новую таблицу должна быть достаточно оптимизирована, так как оптимизатор Teradata должен выбрать операцию MERGE уровня блока данных вместо строки за строкой.
- Создать новую таблицу с идентификацией Колонка
- Убедитесь, что изменения целевой таблицы в исходной таблице проводятся.
- Вставить Выберите данные из старой таблицы в новую таблицу.
- Переименовать {orig_table} как {orig_table} _old.
- Переименуйте {new_table} как {orig_table}.
- Подтвердить данные новой таблицы и удалить {orig_table} _old
- Обновить представление вида 1: 1, чтобы ввести столбец идентичности. (Необязательно)
Надеюсь, что это поможет.
Другое решение, которое вы можете попробовать, если вам нужно расширить тип данных столбца, который находится за пределами допустимой модификации места. (Например, ДЕСЯТИЧНАЯ (3,0) -> ДЕСЯТИЧНАЯ (5,0)):
ALTER TABLE {MyTable} ADD {Orig_ColumnName}_New DECIMAL(5,0) NULL;
UPDATE {MyTable} SET {Orig_ColumnName}_New = {Orig_Column};
ALTER TABLE {MyTable} DROP {Orig_ColumnName};
ALTER TABLE {MyTable} RENAME {Orig_ColumnName}_New AS {Orig_ColumnName};
ALTER TABLE {MyTable} ADD {Orig_ColumnName} NOT NULL; /* If original column was NOT NULL */
правила, объясняющие границы для расширения типа столбцов данных можно найти в руководстве Teradata DDL.
Я забыл, что существует опция «Переименовать», иначе бы ответили на вопрос, прежде чем вы это сделали;) – emaillenin
Полный ответ в основном суммирует последний абзац в моем вопросе. Короче говоря, метод, который вы предлагаете, - это точный метод, который я пытаюсь избежать. – oscilatingcretin
@oscilatingcretin nope. разница в времени простоя таблицы. в методе переименования у почти нет времени простоя – emaillenin