105

を使用してテーブルを作成できるようにしたい

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

しかし、その前に、テーブルが既に存在するかどうかを確認したいと思います。おそらく次のようなものです

Schema::exists('mytable');

ただし、上記の機能はありません。他に何が使えますか?

4

6 に答える 6

265

Laravel 4 または 5 を使用している場合は、メソッドがあります。L4 ソース コードまたはL5 ドキュメントhasTable()で見つけることができます。

Schema::hasTable('mytable');
于 2013-04-10T23:12:16.513 に答える
4

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 …
}
于 2013-04-10T22:39:29.070 に答える
0

むしろ、 を使用してテーブル内の一部のデータをチェックするのではなく、情報スキーマ クエリに依存しますCOUNT()

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

あなたの価値観を変えてください'table_name'

1 行の出力が得られた場合は、テーブルが存在することを意味します。

于 2015-08-23T07:46:17.143 に答える