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

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

ALTER TABLE RENAME

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

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

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

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

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

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

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

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

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

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

Синтаксис

ALTER TABLE [IF EXISTS] [db_name.]table_name
RENAME TO new_table_name
[LOGICAL_ONLY]

Параметры:

db_name

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

table_name

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

new_table_name

Новое имя логической таблицы.

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

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

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

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

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

Ограничения

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

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

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

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

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

Примеры

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

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

ALTER TABLE marketing.stores
RENAME TO all_stores

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

USE marketing_new;

ALTER TABLE sales
RENAME TO sales_new;

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

ALTER TABLE IF EXISTS marketing.stores 
RENAME TO stores_old

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

ALTER TABLE marketing.sales
RENAME TO sales_new
LOGICAL_ONLY