sql >> Databáze >  >> RDS >> MariaDB

4 způsoby, jak zkontrolovat, zda tabulka v MariaDB existuje

Zde jsou čtyři způsoby, jak zkontrolovat, zda tabulka v databázi MariaDB existuje či nikoli.

information_schema.TABLES Tabulka

information_schema.TABLES tabulka obsahuje informace o různých non-TEMPORARY tabulky (kromě tabulek z databáze Information Schema) a pohledy na serveru.

Zde je příklad dotazování na tuto tabulku:

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';

Výsledek:

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

Zde jsem vrátil základní tabulku s názvem Pets z databáze s názvem PetHouse . Dotaz bez filtrování výsledků podle TABLE_SCHEMA vrátí základní tabulky ze všech databází. Dotazování bez filtrování podle TABLE_TYPE vrátí všechny typy tabulek.

Pokud všechny tyto informace nepotřebujeme, můžeme to udělat takto:

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

Výsledek:

1

Nebo bychom mohli získat počet:

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

Výsledek:

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

Položka SHOW TABLES Příkaz

SHOW TABLES příkaz uvádí neTEMPORARY tabulky, sekvence a pohledy v dané databázi. Můžeme použít WHERE klauzule pro zúžení na daný typ.

Můžeme také použít FULL modifikátor, který vrátí druhý sloupec, který zobrazuje typ:

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

Výsledek:

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

V tomto případě je název databáze pethouse , a tak první sloupec je Tables_in_pethouse .

Položka SHOW TABLE STATUS Příkaz

SHOW TABLE STATUS příkaz je podobný příkazu SHOW TABLES příkaz, ale poskytuje rozsáhlejší informace o každém (neTEMPORARY ) tabulka.

Příklad:

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

Výsledek:

+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
| 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 Klient

Další způsob, jak to udělat, je pomocí mariadb-show užitečnost.

Chcete-li použít tuto možnost, otevřete okno příkazového řádku/terminálu a spusťte následující (nahrazením pethouse s databází, která vás zajímá):

mariadb-show pethouse;

Výsledek:

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

Tím se vrátí pohledy a tabulky.

Výstup zobrazuje pouze názvy těch databází, tabulek nebo sloupců, pro které máte určitá oprávnění.

Pokud není zadána žádná databáze, zobrazí se všechny odpovídající databáze. Pokud není zadána žádná tabulka, zobrazí se všechny odpovídající tabulky v databázi. Pokud není uveden žádný sloupec, zobrazí se všechny odpovídající sloupce a typy sloupců v tabulce.

Klienta lze také spustit jako mysqlshow :

mysqlshow pethouse;

Tento nástroj přijímá několik možností, jako je --user (aby bylo možné předat uživatelské jméno), --password (aby bylo možné předat heslo) atd.

Úplný seznam možností naleznete v dokumentaci MariaDB.

Před jejím vytvořením zkontrolujte, zda tabulka již existuje

Pokud potřebujete vytvořit tabulku, pokud neexistuje, můžete použít IF NOT EXISTS klauzule CREATE TABLE prohlášení. Pokud tabulka neexistuje, bude vytvořena. Pokud již existuje, nebude vytvořen.

Příklad viz Jak vytvořit tabulku, pouze pokud neexistuje v MariaDB.


  1. Jak BIN() funguje v MariaDB

  2. JDBC Zpracování výjimek dávkového vložení

  3. Moje oblíbená rozšíření PostgreSQL – část první

  4. Jak zacházet s booleovskými hodnotami v SQLite pomocí JavaScript proxy