optimizar lentas drop consultas column check php laravel

php - lentas - laravel check if table exists



¿Hay alguna manera de detectar si existe una tabla de base de datos con Laravel (4)

Quiero ser capaz de crear una tabla usando

Schema::create(''mytable'',function($table) { $table->increments(''id''); $table->string(''title''); });

Pero antes me gustaría comprobar si la tabla ya existe, tal vez algo así como

Schema::exists(''mytable'');

Sin embargo, la función anterior no existe. ¿Qué más puedo usar?


Más bien, dependa de la consulta del esquema de información en lugar de verificar algunos datos en las tablas con COUNT() .

SELECT table_schema FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = ''table_name'';

Cambie su valor ''table_name'' .

Si obtienes una salida de fila, significa que la tabla existe.


No hay función incorporada para esto en L3. Puedes hacer una consulta sin procesar:

$table = "foo"; $check = DB::only(''SELECT COUNT(*) as `exists` FROM information_schema.tables WHERE table_name IN (?) AND table_schema = database()'',$table); if(!$check) // No table found, safe to create it. { // Schema::create … }


Para crear una nueva tabla, solo hay una hasTable Laravel Schema función hasTable .

if (!Schema::hasTable(''table_name'')) { // Code to create table }

Pero si desea eliminar cualquier tabla antes de verificar su existencia, entonces Schema tiene una función llamada dropIfExists .

Schema::dropIfExists(''table_name'');

Soltará la tabla si existirá la tabla.