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

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

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

table_exists() Thủ tục

Trong MySQL, sys.table_exists() thủ tục được lưu trữ kiểm tra xem một bảng nhất định có tồn tại như một bảng thông thường hay không, một TEMPORARY bảng hoặc một khung nhìn. Thủ tục trả về loại bảng trong OUT tham số.

Ví dụ:

CALL sys.table_exists('Music', 'Albums', @table_type); 
SELECT @table_type;

Kết quả:

+-------------+
| @table_type |
+-------------+
| BASE TABLE  |
+-------------+

Lưu ý rằng nếu tồn tại cả bảng tạm thời và bảng vĩnh viễn với tên đã cho, thì TEMPORARY được trả lại.

information_schema.TABLES Bảng

Một cách khác để kiểm tra xem bảng có tồn tại hay không là truy vấn information_schema.TABLES bảng:

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

Kết quả:

+--------------+------------+------------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_TYPE |
+--------------+------------+------------+
| Music        | Artists    | BASE TABLE |
+--------------+------------+------------+

Trong trường hợp này, tôi đã trả lại bảng cơ sở có tên Artists từ cơ sở dữ liệu có tên music . 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 'music' AND 
        TABLE_TYPE LIKE 'BASE TABLE' AND
        TABLE_NAME = 'Artists'
    );

Kết quả:

1

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

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

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 cơ sở dữ liệu MySQL 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_music LIKE 'Albums';

Kết quả:

+-----------------+------------+
| Tables_in_music | Table_type |
+-----------------+------------+
| Albums          | BASE TABLE |
+-----------------+------------+

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

SHOW TABLE STATUS Lệnh

Trong MySQL, 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 Music
WHERE Name = 'Albums';

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 |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| Albums | InnoDB |      10 | Dynamic    |   20 |            819 |       16384 |               0 |        32768 |         0 |             21 | 2021-11-13 12:56:02 | 2021-11-13 12:56:13 | NULL       | utf8mb4_0900_ai_ci |     NULL |                |         |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+

mysqlshow Khách hàng

Một cách khác để kiểm tra các bảng trong cơ sở dữ liệu MySQL là sử dụng mysqlshow khách hàng.

Để sử dụng tiện ích này, hãy mở cửa sổ dòng lệnh / cửa sổ dòng lệnh và chạy như sau:

mysqlshow --user root --password music;

Đảm bảo thay thế music với cơ sở dữ liệu mà bạn quan tâm và root với người dùng thích hợp. --password bit dẫn đến việc người dùng được nhắc nhập mật khẩu.

Kết quả:

Enter password: 
Database: music
+----------------+
|     Tables     |
+----------------+
| Albums         |
| Artists        |
| Genres         |
| valbumsartists |
| valbumsgenres  |
| vallalbums     |
| vallartists    |
| vallgenres     |
+----------------+

mysqlshow máy khách 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à người dùng 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ị.

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.

Xem Cách kiểm tra xem một bảng đã tồn tại chưa trước khi tạo bảng trong MySQL để 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. Hiểu về BẢNG TRUNCATE của MySQL bằng các ví dụ thực tế

  2. Lỗi nghiêm trọng:Gọi đến hàm không xác định session_register ()

  3. Cơ chế theo dõi các thay đổi giản đồ DB

  4. Kết nối với MySQL bằng Python

  5. Hình ảnh hiển thị PHP BLOB từ MySQL