Удаление записей (delete)

С версии: 9.2.0
34

Конструктор запросов так же позволяет удалять данные из таблиц в базе данных. Так же как и в остальных случаях работы с базой данных нам необходимо получить объект подключения к базе данных. 

$connection = \Illuminate\Database\Capsule\Manager::connection();

В примерах ниже мы так же будем работать с таблицей test_table, структуру которой вы можете посмотреть в статье Вставка записей (insert)

Вы можете удалить все записи из таблицы следующим образом:

$connection->table('test_table')->delete();

Этот пример кода удалит все записи из таблицы test_table. Обратите внимание, значение автоинкремента не изменяется при таком подходе, по этому идентификаторы будут генерироваться не с нуля, а продолжат с того же номера на котором остановились.

Так же вы можете удалить запись с определенным идентификатором (если в таблице есть колонка id). Для этого в метод delete() передайте идентификатор строки, которую хотите удалить.

$connection->table('test_table')->delete(10);

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

$connection->table('test_table')->where('id', '<', 15)->delete();

А этот пример удалит все записи с именем test

$connection->table('test_table')->where('name', '=', 'test')->delete();

Иногда нужно очистить таблицу полностью и сбросить значение автоинкремента. Сделать это можно следующим образом:

$connection->table('test_table')->truncate();