2008-10-17 15 views

Trả lời

398

SHOW TABLE STATUS WHERE Name = 'xxx'

này sẽ cung cấp cho bạn (trong số những thứ khác) một cột Engine, đó là những gì bạn muốn.

+2

Nếu bảng của tôi bị hỏng, chỉ đơn giản là hiển thị Engine = NULL và có "Nhận xét" yêu cầu tôi sửa bảng. Tuy nhiên, trước khi tôi biết làm thế nào để sửa chữa bảng, tôi đoán tôi cần phải biết động cơ (tôi đã không nhận được rằng đến nay phải trung thực.) Vì vậy, bình luận của @ Jocker dưới đây là hữu ích hơn cho tôi. – harperville

+0

@Greg, Chúng ta có nên sử dụng giải pháp này hoặc của Jocker không? – Pacerier

+0

@Pacerier - Cả hai đều hoạt động tốt. Sự khác biệt là giải pháp này cung cấp thông tin cho một bảng, trong khi giải pháp của Jocker cho thấy loại động cơ cho tất cả các bảng trong một cơ sở dữ liệu (trong khi cũng dễ đọc hơn một chút). – kramer65

48
SHOW CREATE TABLE <tablename>; 

Ít phân tích hơn nhưng dễ đọc hơn SHOW TABLE STATUS.

35

hoặc chỉ

show table status;

chỉ rằng điều này sẽ llist tất cả các bảng trên cơ sở dữ liệu của bạn.

+0

Vì một số lý do trả về 0 hàng trong trường hợp của tôi ... –

+0

@NikolaiSamteladze, Bạn có bảng trong db đã chọn không? – Pacerier

195

Để hiển thị danh sách tất cả các bảng trong cơ sở dữ liệu và động cơ của họ, sử dụng truy vấn SQL này:

SELECT TABLE_NAME, 
     ENGINE 
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'dbname'; 

Thay dbname với tên cơ sở dữ liệu của bạn.

+2

Điều này là tuyệt vời b/c nó lọc ra tất cả mọi thứ nhưng tablename và động cơ. – Tone

+0

Để có được động cơ của bảng cụ thể, bạn có thể sử dụng: 'CHỌN ĐỘNG CƠ TỪ INFORMATION_SCHEMA.TABLES ĐÂU TABLE_SCHEMA = '' VÀ TABLE_NAME = '' ' – userlond

12

Bit của một tinh chỉnh để đáp ứng Jocker của (Tôi sẽ gửi như một bình luận, nhưng tôi không có đủ nghiệp chưa):

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database' AND ENGINE IS NOT NULL; 

này không bao gồm quan điểm MySQL từ danh sách, mà không có một động cơ.

9
SHOW CREATE TABLE <tablename>\G 

sẽ định dạng nó đẹp hơn nhiều so với sản lượng của

SHOW CREATE TABLE <tablename>; 

Các \G lừa cũng rất hữu ích để nhớ cho nhiều truy vấn/lệnh khác.

+0

\ G Hack chỉ dưới cli mysql – gaRex

0

chuyển đến cơ sở dữ liệu information_schema ở đó bạn sẽ tìm thấy bảng 'bảng' rồi chọn bảng đó;

Mysql> sử dụng information_schema; Mysql> chọn tên_bảng, công cụ từ bảng;

4
mysqlshow -i <database_name> 

sẽ hiển thị thông tin cho tất cả các bảng của một cơ sở dữ liệu cụ thể.

mysqlshow -i <database_name> <table_name> 

sẽ làm như vậy chỉ cho một bảng cụ thể.

+1

Điều này không trả lời câu hỏi vì nó hiển thị các công cụ cho tất cả các bảng. Người khởi xướng câu hỏi đang tìm kiếm thông tin liên quan đến một bảng cụ thể. – Tass

0

Tuy nhiên, một cách khác, có lẽ là ngắn nhất để có được tình trạng của một bộ duy nhất hoặc phù hợp của bảng:

SHOW TABLE STATUS LIKE 'table'; 

Sau đó bạn có thể sử dụng LIKE khai thác ví dụ:

SHOW TABLE STATUS LIKE 'field_data_%'; 
2

Nếu bạn là một người dùng linux:

Để hiển thị công cụ cho tất cả các bảng cho tất cả cơ sở dữ liệu trên máy chủ mysql, không có bảng information_schema, mysql, performance_schema:

less < <({ for i in $(mysql -e "show databases;" | cat | grep -v -e Database-e information_schema -e mysql -e performance_schema); do echo "--------------------$i--------------------"; mysql -e "use $i; show table status;"; done } | column -t) 

Bạn có thể yêu thích điều này, nếu bạn sử dụng Linux, ít nhất.

Sẽ mở tất cả thông tin cho tất cả các bảng trong less, nhấn -S để cắt các đường quá dài.

đầu ra Ví dụ:

--------------------information_schema-------------------- 
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 C 
CHARACTER_SETS            MEMORY    10  Fixed  NULL 384    0   16434816   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATIONS             MEMORY    10  Fixed  NULL 231    0   16704765   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLLATION_CHARACTER_SET_APPLICABILITY      MEMORY    10  Fixed  NULL 195    0   16357770   0    0   NULL   2015-07-13 15:48:45  NULL  N 
COLUMNS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
COLUMN_PRIVILEGES           MEMORY    10  Fixed  NULL 2565   0   16757145   0    0   NULL   2015-07-13 15:48:45  NULL  N 
ENGINES              MEMORY    10  Fixed  NULL 490    0   16574250   0    0   NULL   2015-07-13 15:48:45  NULL  N 
EVENTS              MyISAM    10  Dynamic  NULL 0    0   281474976710655  1024   0   NULL   2015-07-13 15:48:45  2015-07-13 1 
FILES              MEMORY    10  Fixed  NULL 2677   0   16758020   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_STATUS            MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
GLOBAL_VARIABLES           MEMORY    10  Fixed  NULL 3268   0   16755036   0    0   NULL   2015-07-13 15:48:45  NULL  N 
KEY_COLUMN_USAGE           MEMORY    10  Fixed  NULL 4637   0   16762755   0 

. 
. 
. 
3

Nếu bạn đang sử dụng MySQL Workbench, bạn có thể kích chuột phải vào bảng và chọn 'thay đổi bảng'.

Trong cửa sổ đó, bạn có thể thấy bảng của bạn Engine và cũng có thể thay đổi nó.