DELETE FROM
Важно
В настоящее время одновременное использование колоночных и строковых таблиц поддерживается в транзакциях, в которых данные только читаются, но не изменяются. Поддержка транзакций с возможностью модификации данных при одновременном использовании строковых и колоночных таблиц находится в разработке.
Если попытаться выполнить операцию записи в транзакции, в которой задействованы и колоночные, и строковые таблицы, транзакция завершится с ошибкой: Write transactions between column and row tables are disabled at current time
.
Удаляет строки из таблицы, подходящие под условия, заданные в WHERE
.
Пример
DELETE FROM my_table
WHERE Key1 == 1 AND Key2 >= "One";
DELETE FROM ... ON
Используется для удаления данных на основе результатов подзапроса. Набор колонок, возвращаемых подзапросом, должен быть подмножеством колонок обновляемой таблицы, и в составе возвращаемых колонок обязательно должны присутствовать все колонки первичного ключа таблицы. Типы данных возвращаемых подзапросом колонок должны совпадать с типами данных соответствующих колонок таблицы.
Для поиска удаляемых из таблицы записей используется значение первичного ключа. Присутствие других (неключевых) колонок таблицы в составе выходных колонок подзапроса не влияет на результаты операции удаления.
Пример
$to_delete = (
SELECT Key, SubKey FROM my_table WHERE Value = "ToDelete" LIMIT 100
);
DELETE FROM my_table ON
SELECT * FROM $to_delete;
DELETE FROM ... RETURNING
Используется для удаления строк и одновременного возврата значений из них. Это позволяет получить информацию об удаляемых записях за один запрос, избавляя от необходимости выполнять предварительный SELECT.
Примеры
- Возврат всех значений удаленных строк
DELETE FROM orders
WHERE status = 'cancelled'
RETURNING *;
- Возврат конкретных столбцов
DELETE FROM orders
WHERE status = 'cancelled'
RETURNING order_id, order_date;