Có thể bằng cách nào đó có được cấu trúc của cơ sở dữ liệu MySQL, hoặc chỉ một số bảng với truy vấn đơn giản?
Hoặc có một cách khác, làm thế nào tôi có thể làm điều đó?
Có thể bằng cách nào đó có được cấu trúc của cơ sở dữ liệu MySQL, hoặc chỉ một số bảng với truy vấn đơn giản?
Hoặc có một cách khác, làm thế nào tôi có thể làm điều đó?
Câu trả lời:
Tôi nghĩ rằng những gì bạn đang theo đuổi là DESCRIBE
DESCRIBE table;
Bạn cũng có thể dùng SHOW TABLES
SHOW TABLES;
để có được một danh sách các bảng trong cơ sở dữ liệu của bạn.
Để có được toàn bộ cấu trúc cơ sở dữ liệu dưới dạng một tập hợp các câu lệnh CREATE TABLE , hãy sử dụng mysqldump :
mysqldump database_name --compact --no-data
Đối với các bảng đơn lẻ, thêm tên bảng sau tên db trong mysqldump. Bạn nhận được kết quả tương tự với SQL và SHOW CREATE TABLE :
SHOW CREATE TABLE table;
Hoặc MÔ TẢ nếu bạn thích một danh sách cột:
DESCRIBE table;
show create table
chính xác là những gì tôi đang tìm kiếm. Cảm ơn!
Hãy nhìn vào INFORMATION_SCHEMA
. TABLES
bàn. Nó chứa siêu dữ liệu về tất cả các bảng của bạn.
Thí dụ:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
Ưu điểm của phương pháp này so với các phương thức khác là bạn có thể dễ dàng sử dụng các truy vấn như truy vấn ở trên làm truy vấn con trong các truy vấn khác của mình.
information_schema
. columns
(sử dụng columns
bảng thay vì tables
? Bởi vì tables
không chứa bất kỳ thông tin nào về các loại cột trong bảng
Sử dụng cái này:
SHOW CREATE TABLE `users`;
sẽ cung cấp cho bạn DDL cho bảng đó
DESCRIBE `users`
sẽ liệt kê các cột trong bảng đó
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
Table_schema
tên cơ sở dữ liệu ở đâu
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_db_name' AND TABLE_NAME ='users';
Đó là truy vấn SHOW CREATE TABLE . Bạn cũng có thể truy vấn BẢNG SCHema .
SHOW CREATE TABLE YourTableName;
Một biến thể của câu trả lời đầu tiên mà tôi thấy hữu ích
Mở dấu nhắc lệnh của bạn và nhập (bạn không cần phải đăng nhập vào máy chủ mysql của bạn)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
CHỌN COLUMN_NAME
TỪ INFORMATION_SCHEMA
. COLUMNS
WHERE TABLE_SCHEMA
= 'bodb' AND TABLE_NAME
= 'abc';
hoạt động để có được tất cả các tên cột
Trong ví dụ sau,
playground
là tên cơ sở dữ liệu vàequipment
là tên bảng
Một cách khác là sử dụng SHOW-COLUMNS: 5.5 (cũng có sẵn cho 5.5>
)
$ mysql -uroot -p<password> -h<host> -P<port> -e \
"SHOW COLUMNS FROM playground.equipment"
Và đầu ra:
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(50) | YES | | NULL | |
| quant | int(11) | YES | | NULL | |
| color | varchar(25) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
Người ta cũng có thể sử dụng mysqlshow-client (cũng có sẵn 5.5>
) như sau:
$ mysqlshow -uroot -p<password> -h<host> -P<port> \
playground equipment
Và đầu ra:
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: playground Table: equipment
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
| id | int(11) | | NO | PRI | | auto_increment | select,insert,update,references | |
| type | varchar(50) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
| quant | int(11) | | YES | | | | select,insert,update,references | |
| color | varchar(25) | latin1_swedish_ci | YES | | | | select,insert,update,references | |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
SHOW TABLES FROM database_name