ALTER TABLE RENAME

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

Поддерживается в версиях: 7.6 / 7.5 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.12 / 6.11 / 6.10 / 6.9 / 6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0.

Запрос переименовывает таблицу:

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

Как работает запрос

Регистрация запроса

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

Обработка запроса

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

Успешный результат

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

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

Неуспешный результат

При ошибке исполнения корректного запроса система блокирует все последующие DDL-запросы в логической БД. О снятии такой блокировки см. в разделе Снятие блокировки DDL-запросов.

Синтаксис

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

Параметры:

db_name

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

table_name

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

new_table_name

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

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

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

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

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

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

Варианты ответа

В ответе возвращается:

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

Ограничения

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

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

Ограничения партиционирования

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

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

Примеры

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

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

ALTER TABLE marketing.clients
RENAME TO moscow_clients

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

ALTER TABLE marketing.payments_proxy
RENAME TO payments_adp

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

USE marketing;

ALTER TABLE sales_snapshot
RENAME TO sales_snapshot_new;

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

ALTER TABLE IF EXISTS marketing.clients 
RENAME TO clients_archive

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

ALTER TABLE marketing.agreements_adp
RENAME TO agreements
LOGICAL_ONLY