Метод truncate
Метод truncate применяется к запросу Query Builder
и выполняет полную очистку таблицы. В отличие от метода
delete, который удаляет записи по одной и не
сбрасывает автоинкремент, truncate удаляет все строки
и сбрасывает счётчик автоинкремента на начальное значение.
Метод не принимает параметров и возвращает целое число - количество
удалённых записей.
Синтаксис
<?php
DB::table('users')->truncate();
?>
Пример
Давайте очистим таблицу 'articles':
<?php
use Illuminate\Support\Facades\DB;
$res = DB::table('articles')->truncate();
echo $res;
?>
Результат выполнения кода:
"10"
Пример
Давайте очистим таблицу 'users' в контроллере:
<?php
namespace AppHttpControllers;
use Illuminate\Support\Facades\DB;
class UserController extends Controller
{
public function clearTable()
{
$res = DB::table('users')->truncate();
return response()->json([
'message' => 'Table cleared successfully',
'deleted' => $res
]);
}
}
?>
Пример
Важно понимать, что truncate не сработает с таблицами,
на которые есть внешние ключи. В таких случаях нужно
использовать DELETE:
<?php
use Illuminate\Support\Facades\DB;
try {
DB::table('orders')->truncate();
} catch (\Exception $e) {
DB::table('orders')->delete();
}
?>
Смотрите также
-
метод
delete,
который удаляет записи с условием -
метод
forceDelete,
который удаляет записи без восстановления -
метод
update,
который обновляет записи в таблице -
метод
insert,
который добавляет новые записи