Saltar al contenido

Laravel Eloquent truncate – Restricción de clave externa

Solución:

No, esta es la forma en que funciona su base de datos. No puede truncar la tabla a la que hace referencia alguna otra tabla. Puedes hacer algo como

DB::statement('SET FOREIGN_KEY_CHECKS=0;');
DB::table('datapoints')->truncate();
DB::table('sensors')->truncate();
DB::statement('SET FOREIGN_KEY_CHECKS=1;');

para deshabilitar las comprobaciones de claves foráneas, trunque las tablas y habilítelas de nuevo.

Si prefiere utilizar objetos elocuentes, la respuesta de Maksym de la manera “elocuente”

use IlluminateSupportFacadesSchema;
use AppModelsDatapoint;
use AppModelsSensor;


Schema::disableForeignKeyConstraints();
Datapoint::truncate();
Sensor::truncate();
Schema::enableForeignKeyConstraints();

En Laravel 7, para compatibilidad entre 4 bases de datos (MySql, Postgres, SQLite y Servidor SQL) y no Eloquent, puedes usar:

Schema::disableForeignKeyConstraints();
DB::table('datapoints')->truncate();
DB::table('sensors')->truncate();
Schema::enableForeignKeyConstraints();
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *