INSERT INTO

Важно

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

Если попытаться выполнить операцию записи в транзакции, в которой задействованы и колоночные, и строковые таблицы, транзакция завершится с ошибкой: Write transactions that use both row-oriented and column-oriented tables are disabled at current time.

Добавляет строки в таблицу. При попытке вставить в таблицу строку с уже существующим значением первичного ключа операция завершится ошибкой с кодом PRECONDITION_FAILED и текстом Operation aborted due to constraint violation: insert_pk.

INSERT INTO позволяет выполнять следующие операции:

  • Добавление константных значений с помощью VALUES.

    INSERT INTO my_table (Key1, Key2, Value1, Value2)
    VALUES (345987,'ydb', 'Яблочный край', 1414);
    COMMIT;
    
    INSERT INTO my_table (key, value)
    VALUES ("foo", 1), ("bar", 2);
    
  • Сохранение результата выборки SELECT.

    INSERT INTO my_table
    SELECT Key AS Key1, "Empty" AS Key2, Value AS Value1
    FROM my_table1;
    

При работе с внешними файловыми источниками данных можно дополнительно указывать ряд параметров:

Пример

INSERT INTO `connection`.`test/`
WITH
(
  FORMAT = "csv_with_names"
)
SELECT
    "value" AS value, "name" AS name

Где:

  • connection — название соединения с S3 (Yandex Object Storage).
  • test/— путь внутри бакета, куда будут записаны данные. При записи создаются файлы со случайными именами.
Предыдущая
Следующая