Ответ 1
Если вы используете Laravel 4 или 5, то есть метод hasTable()
, вы можете найти его в исходном коде L4 или L5 docs:
Schema::hasTable('mytable');
Я хочу, чтобы создать таблицу, используя
Schema::create('mytable',function($table)
{
$table->increments('id');
$table->string('title');
});
Но перед этим я хотел бы проверить, существует ли таблица, возможно, что-то вроде
Schema::exists('mytable');
Однако вышеуказанная функция не существует. Что еще я могу использовать?
Если вы используете Laravel 4 или 5, то есть метод hasTable()
, вы можете найти его в исходном коде L4 или L5 docs:
Schema::hasTable('mytable');
Чтобы создать новую таблицу, существует только одна проверка с помощью функции Laravel Schema hasTable
.
if (!Schema::hasTable('table_name')) {
// Code to create table
}
Но если вы хотите удалить любую таблицу, прежде чем проверять ее существование, тогда у Схемы есть функция dropIfExists
.
Schema::dropIfExists('table_name');
Откроется таблица, если таблица будет существовать.
Нет встроенной функции для этого в 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 …
}
Скорее, зависеть от запроса информационной схемы вместо проверки некоторых данных в таблицах с помощью COUNT()
.
SELECT table_schema
FROM information_schema.tables
WHERE table_schema = DATABASE()
AND table_name = 'table_name';
Измените значение 'table_name'
.
Если вы получаете один вывод строки, это означает, что таблица существует.