REPLACE INTO
Важно
В настоящее время одновременное использование колоночных и строковых таблиц поддерживается в транзакциях, в которых данные только читаются, но не изменяются. Поддержка транзакций с возможностью модификации данных при одновременном использовании строковых и колоночных таблиц находится в разработке.
Если попытаться выполнить операцию записи в транзакции, в которой задействованы и колоночные, и строковые таблицы, транзакция завершится с ошибкой: Write transactions between column and row tables are disabled at current time
.
В отличие от INSERT INTO
и UPDATE
, запросы UPSERT INTO
и REPLACE INTO
не требуют предварительного чтения данных, поэтому выполняются быстрее. REPLACE INTO
сохраняет данные в таблицу с перезаписью строк по первичному ключу. Если заданный первичный ключ отсутствует, в таблицу будет добавлена новая строка. Если задан существующий первичный ключ, строка будет перезаписана. При этом значения столбцов, не определенных в операции REPLACE INTO
, заменяются на значения по умолчанию.
Примеры
- Задание значений для
REPLACE INTO
c помощьюVALUES
:
REPLACE INTO my_table (Key1, Key2, Value2) VALUES
(1u, "One", 101),
(2u, "Two", 102);
COMMIT;
- Получение значений для
REPLACE INTO
с помощью выборкиSELECT
:
REPLACE INTO my_table
SELECT Key AS Key1, "Empty" AS Key2, Value AS Value1
FROM my_table1;
COMMIT;