2017-10-30 13 views
0

Laravel을 사용하여 모든 데이터베이스 특성을 얻으려면 어떻게해야합니까? 사용했습니다 DB::connection('new_mysql_connection')->getPdo() 이제이 연결에 사용할 수있는 관계를 가져와야합니다. 나는laravel 연결 관계 가져 오기

$tables = DB::connection('new_mysql_connection') 
       ->select('SHOW TABLES'); 

에 의해 테이블을 얻을 수 있습니다하지만 어떻게 내가이 데이터베이스에서 관계 또는 뷰와 같은 다른 특성을 얻을 수 있나요? 미리 감사드립니다.

답변

0

난 그냥 모든 데이터베이스, 테이블 및 열을 얻기 위해 MySQL의 쿼리를 사용 속성 : 를 모든 테이블 이름 목록 가져 오기위한 :

$relations = DB::select(' 
       SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, 
       REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME 
       FROM information_schema.KEY_COLUMN_USAGE 
       WHERE TABLE_SCHEMA = ? 
       AND TABLE_NAME = ? 
       AND COLUMN_NAME = ? 
       AND REFERENCED_TABLE_NAME IS NOT NULL', [$database, $table_name, $column_name]); 

열 세부 사항을 얻기 위해 모든 열 관계를 가져 오기위한

$tables = $connection->select('SHOW FULL TABLES'); 
$t = 'Tables_in_' . $connection->getDatabaseName(); 

을 null,!, default, data_type 등 :

$column_details = DB::select('SHOW COLUMNS FROM `'. $table .'` FROM `'. $database .'` WHERE Field = "'. $column .'"'); 

열이 색인인지 아닌지 확인하려면

$index = DB::select(' 
      SELECT * 
      FROM INFORMATION_SCHEMA.STATISTICS 
      WHERE TABLE_SCHEMA = ? 
      AND TABLE_NAME = ? 
      AND COLUMN_NAME = ?;', [$database, $table, $column]);