MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

4 sposoby sprawdzenia, czy tabela istnieje w MariaDB

Oto cztery sposoby sprawdzenia, czy tabela istnieje w bazie danych MariaDB.

information_schema.TABLES Tabela

information_schema.TABLES tabela zawiera informacje o różnych nie-TEMPORARY tabele (oprócz tabel z bazy danych schematów informacyjnych) i widoki na serwerze.

Oto przykład zapytania do tej tabeli:

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

Wynik:

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

Tutaj zwróciłem tabelę podstawową o nazwie Pets z bazy danych o nazwie PetHouse . Zapytanie o to bez filtrowania wyników według TABLE_SCHEMA zwraca tabele bazowe ze wszystkich baz danych. Zapytanie bez filtrowania według TABLE_TYPE zwraca wszystkie typy tabel.

Jeśli nie potrzebujemy wszystkich tych informacji, możemy to zrobić:

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

Wynik:

1

Albo możemy uzyskać liczbę:

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

Wynik:

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

SHOW TABLES Polecenie

SHOW TABLES polecenie wyświetla listę niebędącą TEMPORARY tabele, sekwencje i widoki w danej bazie danych. Możemy użyć WHERE klauzulę, aby zawęzić ją do danego typu.

Możemy również użyć FULL modyfikator, aby zwrócić drugą kolumnę wyświetlającą typ:

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

Wynik:

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

W tym przypadku nazwa bazy danych to pethouse , a więc pierwsza kolumna to Tables_in_pethouse .

SHOW TABLE STATUS Polecenie

SHOW TABLE STATUS polecenie jest podobne do polecenia SHOW TABLES polecenie, ale zawiera bardziej szczegółowe informacje o każdym z nich (nie TEMPORARY ) tabeli.

Przykład:

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

Wynik:

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

Innym sposobem na to jest mariadb-show pożytek.

Aby użyć tej opcji, otwórz wiersz poleceń/okno terminala i uruchom następujące polecenie (zastępując pethouse z interesującą Cię bazą danych):

mariadb-show pethouse;

Wynik:

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

Spowoduje to zwrócenie widoków i tabel.

Dane wyjściowe wyświetlają tylko nazwy tych baz danych, tabel lub kolumn, do których masz pewne uprawnienia.

Jeśli nie podano bazy danych, wyświetlane są wszystkie pasujące bazy danych. Jeśli nie podano tabeli, wyświetlane są wszystkie pasujące tabele w bazie danych. Jeśli nie podano żadnej kolumny, wyświetlane są wszystkie pasujące kolumny i typy kolumn w tabeli.

Klient może być również uruchomiony jako mysqlshow :

mysqlshow pethouse;

To narzędzie akceptuje sporo opcji, takich jak --user (abyś mógł przekazać nazwę użytkownika), --password (abyś mógł przekazać hasło) itp.

Zobacz dokumentację MariaDB, aby uzyskać pełną listę opcji.

Sprawdź, czy tabela już istnieje przed jej utworzeniem

Jeśli potrzebujesz utworzyć tabelę, jeśli nie istnieje, możesz użyć IF NOT EXISTS klauzula CREATE TABLE oświadczenie. Jeśli tabela nie istnieje, zostanie utworzona. Jeśli już istnieje, nie zostanie utworzony.

Zobacz na przykład Jak utworzyć tabelę tylko wtedy, gdy nie istnieje w MariaDB.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buforowanie zapytań MySQL i MariaDB za pomocą ProxySQL i ClusterControl

  2. Porównanie ręcznych wdrożeń baz danych z wdrożeniami automatycznymi

  3. MariaDB Connector/Python Beta już dostępne

  4. 6 sposobów na dodanie miesiąca do daty w MariaDB

  5. Jak ASCII() działa w MariaDB