Управление таблицами

Узнайте как создать, отредактировать или удалить таблицу. Для создания таблицы вам понадобится база данных.

Создайте таблицу

Чтобы создать таблицу, укажите:

  1. Имя таблицы.
  2. Имена и типы данных для каждой колонки.
  3. Колонки, формирующие первичный ключ. Первичный ключ в таблицах YDB является обязательным.

Таблицы в YDB имеют следующие характеристики:

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

Подробнее про модель данных и схему YDB читайте в разделе Модель данных и схема. Про поддерживаемые типы данных читайте в разделе Типы данных.

Оператор CREATE TABLE создает таблицу с указанными параметрами:

CREATE TABLE series
(
    series_id Uint64,
    title Utf8,
    series_info Utf8,
    release_date Uint64,
    PRIMARY KEY (series_id)
);

CREATE TABLE seasons
(
    series_id Uint64,
    season_id Uint64,
    title Utf8,
    first_aired Uint64,
    last_aired Uint64,
    PRIMARY KEY (series_id, season_id)
);

CREATE TABLE episodes
(
    series_id Uint64,
    season_id Uint64,
    episode_id Uint64,
    title Utf8,
    air_date Uint64,
    PRIMARY KEY (series_id, season_id, episode_id)
);

В результате будет создана простая таблица series с колонками series_id, title, series_info и release_date. Колонка series_id является первичным ключом таблицы. Таблицы seasons и episodes описываются аналогичным образом.

Примечание

Подробнее о том, как добавить вторичные индексы при создании таблицы, читайте в разделе Добавление вторичных индексов.

Измените структуру таблицы

В YDB можно добавлять неключевые колонки в таблицу.

ADD COLUMN добавляет колонку с указанными именем и типом. Приведенный ниже код добавит к таблице episodes колонку is_deleted с типом данных Bool.

ALTER TABLE episodes ADD COLUMN is_deleted Bool;

DROP COLUMN удаляет колонку с указанными именем. Приведенный ниже код удалит колонку is_deleted из таблицы episodes.

ALTER TABLE episodes DROP column is_deleted;

Удалите таблицу

DROP TABLE удаляет указанную таблицу. Если таблицы с таким именем не существует, возвращается ошибка. Приведенный ниже код вернет ошибку Table not found, так как мы не создавали таблицу actors.

DROP TABLE actors;

Создайте и удалите директории

Создание и удаление директорий в текущей версии возможно только через SDK. SDK предоставляет методы создания, удаления, листинга и просмотра информации о директории.

В таблице ниже приведены имена методов в SDK для Java, Python и Go.

Метод Java Python Go
Создание директории SchemeClient.makeDirectory scheme_client.make_directory Client.MakeDirectory
Удаление директории SchemeClient.removeDirectory scheme_client.remove_directory Client.RemoveDirectory
Просмотр информации о директории SchemeClient.describePath SchemeClient.describeDirectory Client.DescribePath
Листинг директории scheme_client.describe_path SchemeClient.list_directory Client.ListDirectory