Подтвердить что ты не робот

Есть ли способ обнаружить, существует ли таблица базы данных с Laravel

Я хочу, чтобы создать таблицу, используя

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

Но перед этим я хотел бы проверить, существует ли таблица, возможно, что-то вроде

Schema::exists('mytable');

Однако вышеуказанная функция не существует. Что еще я могу использовать?

4b9b3361

Ответ 1

Если вы используете Laravel 4 или 5, то есть метод hasTable(), вы можете найти его в исходном коде L4 или L5 docs:

Schema::hasTable('mytable');

Ответ 2

Чтобы создать новую таблицу, существует только одна проверка с помощью функции Laravel Schema hasTable.

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

Но если вы хотите удалить любую таблицу, прежде чем проверять ее существование, тогда у Схемы есть функция dropIfExists.

Schema::dropIfExists('table_name');

Откроется таблица, если таблица будет существовать.

Ответ 3

Нет встроенной функции для этого в L3. Вы можете выполнить необработанный запрос:

$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 …
}

Ответ 4

Скорее, зависеть от запроса информационной схемы вместо проверки некоторых данных в таблицах с помощью COUNT().

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

Измените значение 'table_name'.

Если вы получаете один вывод строки, это означает, что таблица существует.