sql >> データベース >  >> RDS >> MariaDB

MariaDBにテーブルが存在するかどうかを確認する4つの方法

    MariaDBデータベースにテーブルが存在するかどうかを確認する4つの方法があります。

    information_schema.TABLES

    information_schema.TABLES テーブルには、さまざまな非TEMPORARYに関する情報が含まれています テーブル(情報スキーマデータベースのテーブルを除く)とサーバー上のビュー。

    このテーブルをクエリする例を次に示します。

    SELECT 
       TABLE_SCHEMA, 
       TABLE_NAME,
       TABLE_TYPE
    FROM 
       information_schema.TABLES 
    WHERE 
       TABLE_SCHEMA LIKE 'PetHouse' AND 
    	TABLE_TYPE LIKE 'BASE TABLE' AND
    	TABLE_NAME = 'Pets';

    結果:

    +--------------+------------+------------+
    | TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE |
    +--------------+------------+------------+
    | PetHouse     | pets       | BASE TABLE |
    +--------------+------------+------------+

    ここでは、Petsというベーステーブルを返しました。 PetHouseというデータベースから 。 TABLE_SCHEMAで結果をフィルタリングせずにこれをクエリする すべてのデータベースからベーステーブルを返します。 TABLE_TYPEでフィルタリングせずにクエリを実行する すべてのテーブルタイプを返します。

    そのすべての情報が必要ない場合は、次のようにすることができます:

    SELECT EXISTS (
        SELECT 
            TABLE_NAME
        FROM 
        information_schema.TABLES 
        WHERE 
        TABLE_SCHEMA LIKE 'PetHouse' AND 
            TABLE_TYPE LIKE 'BASE TABLE' AND
            TABLE_NAME = 'Pets'
        );

    結果:

    1

    または、カウントを取得することもできます:

    SELECT COUNT(TABLE_NAME)
    FROM 
       information_schema.TABLES 
    WHERE 
       TABLE_SCHEMA LIKE 'PetHouse' AND 
    	TABLE_TYPE LIKE 'BASE TABLE' AND
    	TABLE_NAME = 'Pets';

    結果:

    +-------------------+
    | COUNT(TABLE_NAME) |
    +-------------------+
    |                 1 |
    +-------------------+

    SHOW TABLES コマンド

    SHOW TABLES コマンドは非TEMPORARYをリストします 特定のデータベース内のテーブル、シーケンス、およびビュー。 WHEREを使用できます 特定のタイプに絞り込むための句。

    FULLも使用できます タイプを表示する2番目の列を返す修飾子:

    SHOW FULL TABLES
    WHERE Table_Type LIKE 'BASE TABLE'
    AND Tables_in_pethouse LIKE 'Pets';

    結果:

    +--------------------+------------+
    | Tables_in_pethouse | Table_type |
    +--------------------+------------+
    | Pets               | BASE TABLE |
    +--------------------+------------+

    この場合、データベース名はpethouseです。 、したがって、最初の列はTables_in_pethouse

    SHOW TABLE STATUS コマンド

    SHOW TABLE STATUS コマンドはSHOW TABLESに似ています コマンドですが、それぞれに関するより広範な情報を提供します(TEMPORARY以外 )テーブル。

    例:

    SHOW TABLE STATUS
    FROM PetHouse
    WHERE Name = 'Pets';

    結果:

    +------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
    | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time | Check_time | Collation          | Checksum | Create_options | Comment | Max_index_length | Temporary |
    +------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
    | Pets | InnoDB |      10 | Dynamic    |    8 |           2048 |       16384 |               0 |        32768 |         0 |           NULL | 2021-04-01 15:42:43 | NULL        | NULL       | utf8mb4_general_ci |     NULL |                |         |                0 | N         |
    +------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+

    mariadb-show クライアント

    これを行う別の方法は、mariadb-showを使用することです。 効用。

    このオプションを使用するには、コマンドラインプロンプト/ターミナルウィンドウを開き、次のコマンドを実行します(pethouseを置き換えます) 興味のあるデータベースを使用):

    mariadb-show pethouse;

    結果:

    +---------------+
    |    Tables     |
    +---------------+
    | Owners        |
    | PetTypes      |
    | Pets          |
    | vownercount   |
    | vpetcount     |
    | vpetsowners   |
    | vpetstypes    |
    | vpettypecount |
    +---------------+

    これにより、ビューとテーブルが返されます。

    出力には、いくつかの特権を持っているデータベース、テーブル、または列の名前のみが表示されます。

    データベースが指定されていない場合は、一致するすべてのデータベースが表示されます。テーブルが指定されていない場合は、データベース内の一致するすべてのテーブルが表示されます。列が指定されていない場合は、テーブル内の一致するすべての列と列タイプが表示されます。

    クライアントはmysqlshowとして実行することもできます :

    mysqlshow pethouse;

    このユーティリティは、--userなどのかなりの数のオプションを受け入れます (ユーザー名を渡すことができるように)、--password (パスワードを渡すことができるように)など

    オプションの完全なリストについては、MariaDBのドキュメントを参照してください。

    テーブルを作成する前に、テーブルがすでに存在するかどうかを確認してください

    テーブルが存在しない場合にテーブルを作成する必要がある場合は、IF NOT EXISTSを使用できます。 CREATE TABLEの句 声明。テーブルが存在しない場合は作成されます。すでに存在する場合、作成されません。

    例については、MariaDBにテーブルが存在しない場合にのみテーブルを作成する方法を参照してください。


    1. JDBC接続のネットワークタイムアウトの設定

    2. ニージャーク待機統計:PAGELATCH

    3. PHP7.0上のLaravel5.4:PDO例外-ドライバーが見つかりませんでした(MySQL)

    4. データベースがOracleであり、SQLを使用しているバージョンを確認するにはどうすればよいですか?