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;