Câu trả lời:
SHOW TABLE STATUS
hiển thị thông tin về một bảng, bao gồm cả đối chiếu.
Ví dụ SHOW TABLE STATUS where name like 'TABLE_NAME'
Câu trả lời trên là tuyệt vời, nhưng nó không thực sự cung cấp một ví dụ giúp người dùng không phải tra cứu cú pháp:
show table status like 'test';
Trong trường hợp test
là tên bảng.
(Đã sửa theo bình luận bên dưới.)
Bạn cũng có thể truy vấn INFORMATION_SCHEMA.TABLES
và lấy đối chiếu cho một bảng cụ thể:
SELECT TABLE_SCHEMA
, TABLE_NAME
, TABLE_COLLATION
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 't_name';
mang lại kết quả đầu ra dễ đọc hơn nhiều so với đầu ra SHOW TABLE STATUS
chứa nhiều thông tin không liên quan.
Lưu ý rằng đối chiếu cũng có thể được áp dụng cho các cột (có thể có đối chiếu khác với chính bảng). Để tìm nạp đối chiếu của các cột cho một bảng cụ thể, bạn có thể truy vấn INFORMATION_SCHEMA.COLUMNS
:
SELECT TABLE_SCHEMA
, TABLE_NAME
, COLUMN_NAME
, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 't_name';
Sử dụng truy vấn này:
SHOW CREATE TABLE tablename
Bạn sẽ nhận được tất cả các thông tin liên quan đến bảng.
...) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
Tôi đoán là nó có thể không hiển thị đối chiếu nếu nó được đặt thành mặc định cho cơ sở dữ liệu trong các phiên bản sau của mysql / mariadb.
utf8
, nhưng collations khác nhau utf8_general_ci
vs utf8_unicode_ci
. Điều này có thể gây ra các thông báo lỗi như HY000, 1267, Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
... đó là thông báo đưa tôi đến trang này.
Lệnh này mô tả
mysql> use <database name>
mysql> show table status like '<table name>';
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
| 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 |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
| test | InnoDB | 11 | Dynamic | 52 | 315 | 16384 | 0 | 0 | 0 | 59 | NULL | 2020-04-16 23:00:00 | NULL | utf8mb4_unicode_ci | NULL | | |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+---------------------+------------+--------------------+----------+----------------+---------+
1 row in set (0.01 sec)