Переименование таблицы

Внимание

Поддерживается только для строковых таблиц. Поддержка функциональности для колоночных таблиц находится в разработке.

ALTER TABLE old_table_name RENAME TO new_table_name;
См. правила наименования таблиц и колонок

Правила наименования схемных объектов

У каждого схемного объекта базы данных в YDB есть имя. В YQL-выражениях имена схемных объектов указываются с помощью идентификаторов, заключённых в обратные кавычки (`) или без этих символов. Для более подробной информации об идентификаторах, см. Ключевые слова и идентификаторы.

Имена схемных объектов в YDB должны соответствовать следующим требованиям:

  • Имя объекта может состоять из следующих символов:
    • прописные латинские буквы;
    • строчные латинские буквы;
    • цифры;
    • специальные символы: ., - и _.
  • Длина имени объекта не должна превышать 255 символов.
  • Объекты не должны создаваться в папках, имена которых начинаются с точки, таких как .sys, .medatata, .sys_health.

Правила наименования колонок

Имена колонок в YDB должны соответствовать следующим требованиям:

  • Имя колонки может состоять из следующих символов:
    • прописные латинские буквы;
    • строчные латинские буквы;
    • цифры;
    • специальные символы: - и _.
  • Длина имени колонки не должна превышать 255 символов.
  • Имя колонки не должно начинаться с системного префикса __ydb_.

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

Важно

Если в YQL запросе содержится несколько команд ALTER TABLE ... RENAME TO ..., то каждая будет выполнена в режиме автокоммита в отдельной транзакции. С точки зрения внешнего процесса, таблицы будут переименованы последовательно одна за другой. Чтобы переименовать несколько таблиц в одной транзакции, используйте специализированные методы, доступные в CLI и SDK.

Переименование может использоваться для перемещения таблицы из одной директории внутри БД в другую, например:

ALTER TABLE `table1` RENAME TO `/backup/table1`;
Предыдущая
Следующая