MariaDB
 sql >> база данни >  >> RDS >> MariaDB

4 начина да проверите дали таблица съществува в MariaDB

Ето четири начина да проверите дали таблица съществува или не в база данни на MariaDB.

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 модификатор за връщане на втора колона, която показва типа:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съвети и трик за използване на регистриране на одит за MariaDB

  2. Как IFNULL() работи в MariaDB

  3. Как работи SUBTIME() в MariaDB

  4. Моят DBA е болен - Съвети за отказване на база данни за SysAdmins

  5. Как LTRIM() работи в MariaDB