INSERT INTO

Добавляет строки в таблицу. Если целевая таблица уже существует и не является сортированной, операция INSERT INTO дописывает строки в конец таблицы. В случае сортированной таблицы, YQL пытается сохранить сортированность путем запуска сортированного слияния.

Таблица по имени ищется в базе данных, заданной оператором USE.

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;
    

Запись может выполняться с одним или несколькими модификаторами. Модификатор указывается после ключевого слова WITH после имени таблицы: INSERT INTO ... WITH SOME_HINT.
Если у модификатора есть значение, то оно указывается после знака =: INSERT INTO ... WITH SOME_HINT=value.
При необходимости указать несколько модификаторов они должны заключаться в круглые скобки: INSERT INTO ... WITH (SOME_HINT1=value, SOME_HINT2, SOME_HINT3=value).

Чтобы перед записью очистить таблицу от имевшихся данных достаточно добавить модификатор: INSERT INTO ... WITH TRUNCATE.

Примеры:

INSERT INTO my_table WITH TRUNCATE
SELECT key FROM my_table_source;

Примеры:

INSERT INTO my_table WITH (TRUNCATE, EXPIRATION="15m")
SELECT key FROM my_table_source;

INSERT INTO my_table WITH USER_ATTRS="{attr1=value1; attr2=value2;}"
SELECT key FROM my_table_source;
Предыдущая
Следующая