Изменение состава колонок
YDB поддерживает возможность добавлять колонки в строковые и колоночные таблицы, а также удалять неключевые колонки из таблиц.
ADD COLUMN
Строит новую колонку с указанными именем, типом и опциями для указанной таблицы.
ALTER TABLE table_name ADD COLUMN column_name column_data_type [FAMILY <family_name>] [NULL | NOT NULL] [DEFAULT <default_value>];
Параметры запроса
table_name
Путь таблицы, для которой требуется добавить новую колонку.
column_name
Имя колонки, которая будет добавлена в указанную таблицу. При выборе имени для колонки учитывайте общие правила именования колонок.
column_data_type
Тип данных колонки. Полный список типов данных, которые поддерживает YDB доступен в разделе Типы данных YQL.
FAMILY <family_name> (настройка колонки)
Указание принадлежности данной колонки к указанной группе колонок. Подробнее в разделе Группы колонок.
DEFAULT <default_value>
Важно
Опция DEFAULT поддерживается:
- Только для строковых таблиц. Поддержка функциональности для колоночных таблиц находится в разработке.
- Только с литеральными значениями. Поддержка функциональности для вычислимых выражений находится в разработке.
Позволяет задать значение по умолчанию для колонки. Если при вставке строки значение для данной колонки не указано, будет использовано указанное значение по умолчанию. Значение по умолчанию должно соответствовать типу данных колонки.
Конструкция DEFAULT false NOT NULL недопустима по причине неоднозначности интерпретации. В таком случае следует использовать перечисление через запятые или изменить порядок опций.
NULL
Данная колонка может содержать значения NULL (по умолчанию).
NOT NULL
Данная колонка не принимает значения NULL.
Пример
Приведенный ниже код добавит к таблице episodes колонку views с типом данных Uint64.
ALTER TABLE episodes ADD COLUMN views Uint64;
Приведенный ниже код добавит к таблице episodes колонку rate с типом данных Double и значением по умолчанию 5.0.
ALTER TABLE episodes ADD COLUMN rate Double NOT NULL DEFAULT 5.0;
ALTER TABLE episodes ADD COLUMN rate Double (DEFAULT 5.0, NOT NULL); -- альтернативный синтаксис
DROP COLUMN
Удаляет колонку из таблицы с указанным именем.
ALTER TABLE table_name DROP COLUMN column_name;
Параметры запроса
table_name
Путь к таблице, в которой требуется удалить колонку.
column_name
Имя колонки, которая будет удалена из указанной таблицы.
Пример
Приведенный ниже код удалит колонку views из таблицы episodes.
ALTER TABLE episodes DROP COLUMN views;