.alter table

Команда .alter table делает следующее:

  • Защищает данные в столбцах "сохранено"
  • Переупорядочивает столбцы таблицы
  • Задает новую схему столбца, docstring и папку для существующей таблицы, перезаписывая существующую схему столбца, docstring папку и
  • Должен выполняться в контексте определенной базы данных, в которой областью имен является таблица.
  • Требуется разрешение администратора таблицы

Предупреждение

.alterНеправильное использование команды может привести к утрате данных.

Совет

.alterИмеет аналог, .alter-merge команду Table, имеющую аналогичные функции. Дополнительные сведения см. в разделе .alter-merge table

Синтаксис

.alter``table TableName (ColumnName:columnType,...) [ with ( [ docstring = Документация] [ , folder = имя_папки] ) ]

  • Таблица будет содержать одни и те же столбцы в том же порядке, как указано. Укажите столбцы таблицы:
  • Если существующие столбцы не указаны в команде, они будут удалены, а данные в них теряются, как в случае с .drop column командой.
  • При изменении таблицы изменение типа столбца не поддерживается. .alter columnВместо этого используйте команду.

Совет

Используйте .show table [TableName] cslschema для получения схемы существующего столбца перед его изменением.

Как команда будет влиять на данные?

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

Предупреждение

Процессы приема данных в таблицу, изменяющие схему столбца таблицы и выполняемые параллельно с .alter table командой, могут выполняться независимо от порядка столбцов таблицы. Кроме того, существует риск того, что данные будут приняты в неверные столбцы. Предотвращение этих проблем путем остановки приема во время выполнения команды или проверки того, что такие операции приема всегда используют объект сопоставления.

Примеры

.alter table MyTable (ColumnX:string, ColumnY:int) 
.alter table MyTable (ColumnX:string, ColumnY:int) with (docstring = "Some documentation", folder = "Folder1")