Development Tip

Laravel에 데이터베이스 테이블이 있는지 감지하는 방법이 있습니까?

yourdevel 2020. 11. 9. 21:15
반응형

Laravel에 데이터베이스 테이블이 있는지 감지하는 방법이 있습니까?


나는 사용하여 테이블을 만들 수 있기를 원합니다

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

그러나 그 전에 테이블이 이미 존재하는지 확인하고 싶습니다.

Schema::exists('mytable');

그러나 위의 기능은 존재하지 않습니다. 그 밖에 무엇을 사용할 수 있습니까?


Laravel 4 또는 5를 사용하는 경우 hasTable()방법 이 있으며 L4 소스 코드 또는 L5 문서 에서 찾을 수 있습니다 .

Schema::hasTable('mytable');

새 테이블을 생성하려면 Laravel Schema 함수에 의한 검사가 하나뿐입니다 hasTable.

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

그러나 존재를 확인하기 전에 테이블을 삭제하려면 Schema에라는 함수가 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 …
}

.NET Framework를 사용하여 테이블의 일부 데이터를 확인하는 대신 정보 스키마 쿼리에 의존하십시오 COUNT().

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

'table_name'가치를 변경하십시오 .

하나의 행 출력을 얻으면 테이블이 있음을 의미합니다.

참고 URL : https://stackoverflow.com/questions/15935990/is-there-any-way-to-detect-if-a-database-table-exists-with-laravel

반응형