Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Вы находитесь на странице архива. Актуальная документация доступна по ссылке.

ALTER TABLE RENAME COLUMN

Содержание раздела
  1. Синтаксис
    1. Ключевое слово IF EXISTS
    2. Ключевое слово LOGICAL_ONLY
  2. Ограничения
    1. Ограничения выполнения
    2. Ограничения имен
    3. Другие ограничения
  3. Примеры
    1. Переименование столбца без ключевых слов
    2. Переименование столбца с ключевым словом IF EXISTS
    3. Переименование столбца с ключевым словом LOGICAL_ONLY

Поддерживается в версиях:  6.2 / 6.1.1 / 6.0.

Запрос переименовывает столбец в логической таблице.

Запрос поддерживается для СУБД ADB, ADP и ADQM.

Запрос попадает в очередь операций и обрабатывается в порядке его поступления в очередь. В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

При успешном выполнении запроса система обновляет структуру логической таблицы в сервисной базе данных, а структуру связанных физических таблиц — в хранилище данных.

После изменения структуры логической таблицы некоторые SELECT-запросы к логическим и материализованным представлениям, связанным с измененной таблицей, могут стать недоступными. В этом случае нужно пересоздать сбойные представления.

Ошибка выполнения корректного запроса блокирует исполнение последующих запросов в этой логической базе данных. В случае блокировки устраните причины сбоя и повторите сбойную операцию. Если повторение операции невозможно, удалите сбойную операцию запросом ERASE_CHANGE_OPERATION и вручную устраните несоответствия на физическом уровне (если такие есть).

Каждое изменение таблицы записывается в журнал. Журнал можно посмотреть с помощью запроса GET_CHANGES.

Синтаксис

ALTER TABLE [db_name.]table_name
RENAME COLUMN [IF EXISTS] column_name TO new_column_name
[LOGICAL_ONLY]

Параметры:

db_name

Имя логической базы данных, которой принадлежит изменяемая логическая таблица. Опционально, если выбрана логическая БД, используемая по умолчанию.

table_name

Имя изменяемой логической таблицы.

column_name

Имя столбца таблицы, который нужно переименовать.

new_column_name

Новое имя столбца таблицы.

Ключевое слово IF EXISTS

Ключевое слово IF EXISTS включает проверку наличия столбца до попытки его переименования. Если ключевое слово указано в запросе, система возвращает успешный ответ как по успешно переименованному столбцу, так и по отсутствующему; иначе — только по успешно переименованному столбцу.

Ключевое слово LOGICAL_ONLY

Ключевое слово LOGICAL_ONLY позволяет создать добавить столбец только на логическом уровне (в логической схеме данных), без обновления связанных физических таблиц в хранилище данных.

Если ключевое слово не указано, столбец добавляется в логическую таблицу на логическом и физическом уровнях.

Ограничения

Ограничения выполнения

Ограничения имен

  • Имена столбцов должны быть уникальны в рамках логической таблицы и соответствовать требованиям,
    описанным в разделе Соглашения об именах.

Другие ограничения

  • Недоступно переименование столбца, входящего в первичный ключ или ключ шардирования.
  • После изменения таблицы запросы к связанным логическим и материализованным представлениям могут стать недоступными. В этом случае нужно пересоздать сбойные представления.
  • Информационная схема обновляется асинхронно, поэтому добавленный столбец может не сразу появиться в информационной схеме.

Примеры

Переименование столбца без ключевых слов

Переименование столбца в таблице указанной логической БД:

ALTER TABLE marketing.clients
RENAME COLUMN description TO additional

Переименование столбца в таблице логической БД, выбранной по умолчанию:

USE marketing_new;

ALTER TABLE sales
RENAME COLUMN manager_id TO manager;

Переименование столбца с ключевым словом IF EXISTS

ALTER TABLE marketing.clients
RENAME COLUMN IF EXISTS description TO additional

Переименование столбца с ключевым словом LOGICAL_ONLY

ALTER TABLE marketing_new.sales
RENAME COLUMN client_id TO client_info
LOGICAL_ONLY