เป็นไปได้หรือไม่ที่จะได้รับโครงสร้างของฐานข้อมูล MySQL หรือเพียงแค่บางตารางที่มีการสืบค้นง่าย ๆ ?
หรือมีวิธีอื่นฉันจะทำอย่างไร
เป็นไปได้หรือไม่ที่จะได้รับโครงสร้างของฐานข้อมูล MySQL หรือเพียงแค่บางตารางที่มีการสืบค้นง่าย ๆ ?
หรือมีวิธีอื่นฉันจะทำอย่างไร
คำตอบ:
ฉันคิดว่าสิ่งที่คุณเป็น DESCRIBE
DESCRIBE table;
คุณยังสามารถใช้ SHOW TABLES
SHOW TABLES;
เพื่อรับรายการตารางในฐานข้อมูลของคุณ
ในการรับโครงสร้างฐานข้อมูลทั้งหมดเป็นชุดของคำสั่ง CREATE TABLEให้ใช้mysqldump :
mysqldump database_name --compact --no-data
สำหรับตารางเดี่ยวเพิ่มชื่อตารางหลังชื่อ db ใน mysqldump คุณได้ผลลัพธ์เดียวกันกับ SQL และSHOW CREATE TABLE :
SHOW CREATE TABLE table;
หรือDESCRIBEหากคุณต้องการรายการคอลัมน์:
DESCRIBE table;
show create table
เป็นสิ่งที่ฉันกำลังมองหา ขอบคุณ!
INFORMATION_SCHEMA
ลองดูที่ที่ TABLES
ตาราง. มันมีข้อมูลเมตาเกี่ยวกับตารางทั้งหมดของคุณ
ตัวอย่าง:
SELECT * FROM `INFORMATION_SCHEMA`.`TABLES`
WHERE TABLE_NAME LIKE 'table1'
ข้อดีของวิธีนี้คือคุณสามารถใช้คิวรีเช่นเดียวกับข้างต้นเป็นเคียวรีย่อยในคิวรีอื่น ๆ ของคุณได้อย่างง่ายดาย
information_schema
มันไม่ได้เป็นที่มันควรจะเป็น columns
(ใช้columns
ตารางแทนtables
เพราะtables
ไม่มีข้อมูลใด ๆ ที่เป็นประเภทคอลัมน์ตาราง
ใช้สิ่งนี้:
SHOW CREATE TABLE `users`;
จะให้DDLแก่คุณในตารางนั้น
DESCRIBE `users`
จะแสดงรายการคอลัมน์ในตารางนั้น
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME ='products';
ที่Table_schema
ชื่อฐานข้อมูล
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';
นั่นคือแบบสอบถามSHOW CREATE TABLE คุณสามารถสืบค้นตาราง SCHEMAได้เช่นกัน
SHOW CREATE TABLE YourTableName;
รูปแบบของคำตอบแรกที่ฉันพบว่ามีประโยชน์
เปิดพรอมต์คำสั่งของคุณแล้วป้อน (คุณไม่จำเป็นต้องลงชื่อเข้าใช้เซิร์ฟเวอร์ mysql ของคุณ)
mysqldump -hlocalhost -u<root> -p<password> <dbname> --compact --no-data > </path_to_mydump/>mysql.dmp
เลือก COLUMN_NAME
INFORMATION_SCHEMA
จาก
COLUMNS
WHERE TABLE_SCHEMA
= 'bodb' AND TABLE_NAME
= 'abc';
ทำงานเพื่อรับชื่อคอลัมน์ทั้งหมด
ในตัวอย่างต่อไปนี้
playground
เป็นชื่อฐานข้อมูลและequipment
เป็นชื่อตาราง
อีกวิธีหนึ่งคือการใช้SHOW-COLUMNS: 5.5 (มีให้สำหรับ5.5>
)
$ mysql -uroot -p<password> -h<host> -P<port> -e \
"SHOW COLUMNS FROM playground.equipment"
และผลลัพธ์:
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 | |
+-------+-------------+------+-----+---------+----------------+
ท่านสามารถใช้mysqlshow-client (มีให้5.5>
) เช่นต่อไปนี้:
$ mysqlshow -uroot -p<password> -h<host> -P<port> \
playground equipment
และผลลัพธ์:
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 | |
+-------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
ปัจจุบันผู้คนใช้แทนDESC
DESCRIPTION
ตัวอย่างเช่น:-
DESC users;
SHOW TABLES FROM database_name