MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

4 cách để kiểm tra xem một bảng có tồn tại trong MariaDB hay không

Dưới đây là bốn cách để kiểm tra xem một bảng có tồn tại trong cơ sở dữ liệu MariaDB hay không.

information_schema.TABLES Bảng

information_schema.TABLES bảng chứa thông tin về các loại không phải TEMPORARY khác nhau các bảng (ngoại trừ các bảng từ cơ sở dữ liệu Lược đồ Thông tin) và các dạng xem trên máy chủ.

Dưới đây là một ví dụ về truy vấn bảng này:

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

Kết quả:

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

Ở đây, tôi đã trả lại bảng cơ sở có tên là Pets từ cơ sở dữ liệu có tên PetHouse . Truy vấn điều này mà không lọc kết quả theo TABLE_SCHEMA trả về các bảng cơ sở từ tất cả các cơ sở dữ liệu. Truy vấn nó mà không lọc theo TABLE_TYPE trả về tất cả các loại bảng.

Nếu chúng tôi không cần tất cả thông tin đó, chúng tôi có thể làm điều này:

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

Kết quả:

1

Hoặc chúng ta có thể đếm:

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

Kết quả:

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

SHOW TABLES Lệnh

SHOW TABLES lệnh liệt kê không phải TEMPORARY bảng, trình tự và dạng xem trong một cơ sở dữ liệu nhất định. Chúng ta có thể sử dụng WHERE mệnh đề để thu hẹp nó thành một loại nhất định.

Chúng tôi cũng có thể sử dụng FULL công cụ sửa đổi để trả về cột thứ hai hiển thị kiểu:

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

Kết quả:

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

Trong trường hợp này, tên cơ sở dữ liệu là pethouse và vì vậy cột đầu tiên là Tables_in_pethouse .

SHOW TABLE STATUS Lệnh

SHOW TABLE STATUS tương tự như lệnh SHOW TABLES nhưng cung cấp thêm thông tin về mỗi lệnh (non-TEMPORARY ) bảng.

Ví dụ:

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

Kết quả:

+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+------------------+-----------+
| 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 Khách hàng

Một cách khác để làm điều đó là với mariadb-show tính thiết thực.

Để sử dụng tùy chọn này, hãy mở cửa sổ dòng lệnh / dòng lệnh và chạy như sau (thay thế pethouse với cơ sở dữ liệu mà bạn quan tâm):

mariadb-show pethouse;

Kết quả:

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

Điều này trả về các dạng xem và bảng.

Đầu ra chỉ hiển thị tên của các cơ sở dữ liệu, bảng hoặc cột mà bạn có một số đặc quyền.

Nếu không có cơ sở dữ liệu nào được cung cấp thì tất cả các cơ sở dữ liệu phù hợp sẽ được hiển thị. Nếu không có bảng nào được đưa ra, thì tất cả các bảng phù hợp trong cơ sở dữ liệu sẽ được hiển thị. Nếu không có cột nào được đưa ra, thì tất cả các cột và loại cột phù hợp trong bảng sẽ được hiển thị.

Ứng dụng khách cũng có thể được chạy dưới dạng mysqlshow :

mysqlshow pethouse;

Tiện ích này chấp nhận một số tùy chọn, chẳng hạn như --user (để bạn có thể chuyển tên người dùng), --password (để bạn có thể chuyển mật khẩu), v.v.

Xem tài liệu của MariaDB để biết danh sách đầy đủ các tùy chọn.

Kiểm tra xem một bảng đã tồn tại chưa trước khi tạo nó

Nếu bạn cần tạo bảng nếu nó không tồn tại, bạn có thể sử dụng IF NOT EXISTS mệnh đề của CREATE TABLE tuyên bố. Nếu bảng không tồn tại, nó sẽ được tạo. Nếu nó đã tồn tại, nó sẽ không được tạo.

Hãy xem Cách tạo bảng Chỉ khi nó không tồn tại trong MariaDB để làm ví dụ.


  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 CURRENT_DATE () được giải thích

  2. Xây dựng chế độ chờ nóng trên Amazon AWS bằng MariaDB Cluster

  3. Cách ASIN () hoạt động trong MariaDB

  4. 4 cách để lấy đối chiếu cơ sở dữ liệu trong MariaDB

  5. MariaDB 10.6 và NextCloud:Hàng COMPRESSED được mặc định chỉ đọc