ดู mysql output w / คอลัมน์แบบตาราง


1

ทำไมเมื่อฉันเรียกใช้แบบสอบถาม MySQL และถ่ายโอนข้อมูลเพื่อ stdout ฉันได้รับตารางที่พิมพ์ เช่น:

> mysql -e "describe <table>" <database>
+------------+--------------+------+-----+---------------------+-------+
| Field      | Type         | Null | Key | Default             | Extra |
+------------+--------------+------+-----+---------------------+-------+
| col1       | varchar(36)  | NO   | PRI | NULL                |       |
| col2       | int(11)      | NO   |     | NULL                |       |
| col3       | varchar(35)  | NO   |     | NULL                |       |
| col4       | varchar(35)  | NO   |     | NULL                |       |
| col5       | varchar(25)  | YES  |     | NULL                |       |
| col6       | varchar(255) | YES  |     | NULL                |       |
| col7       | varchar(255) | YES  |     | NULL                |       |
| col8       | varchar(2)   | YES  |     | NULL                |       |
| col9       | varchar(75)  | YES  |     | NULL                |       |
| col10      | varchar(75)  | YES  |     | NULL                |       |
| col11      | varchar(75)  | YES  |     | NULL                |       |
| col12      | varchar(2)   | YES  |     | NULL                |       |
| col13      | varchar(10)  | YES  |     | NULL                |       |
| col14      | varchar(20)  | YES  |     | NULL                |       |
| col15      | timestamp    | NO   |     | 0000-00-00 00:00:00 |       |
| col16      | timestamp    | NO   |     | 0000-00-00 00:00:00 |       |
| col17      | timestamp    | YES  |     | NULL                |       |
+------------+--------------+------+-----+---------------------+-------+

แต่ถ้าฉันทิ้งแบบสอบถามโดยใช้ watch คำสั่งการจัดรูปแบบตารางจะหายไป?

เช่น:

> watch -n 1 'mysql -e "describe <table>" <database>'


Every 1.0s: mysql -e "describe <table>" <database>  Mon Jun  9 12:08:54 2014

Field   Type    Null    Key     Default Extra
col1    varchar(36)     NO      PRI     NULL
col2    int(11) NO              NULL
col3            varchar(35)     NO              NULL
col4            varchar(35)     NO              NULL
col5       varchar(25)     YES             NULL
col6    varchar(255)    YES             NULL
col7            varchar(255)    YES             NULL
col8    varchar(2)      YES             NULL
col9            varchar(75)     YES             NULL
col10           varchar(75)     YES             NULL
col11   varchar(75)     YES             NULL
col12   varchar(2)      YES             NULL
col13  varchar(10)     YES             NULL
col14           varchar(20)     YES             NULL
col15           timestamp       NO              0000-00-00 00:00:00
col16           timestamp       NO              0000-00-00 00:00:00
col17           timestamp       YES             NULL

ฉันจะเอามันกลับมาได้ไหม? ฉันลองเล่นโหมด w - theraw แล้ว แต่บางทีฉันก็แค่พลาดธงที่เหมาะสม

คำตอบ:


1

คุณกำลังมองหา -t ตัวเลือก ของ MySQL ช่วยเหลือออนไลน์ พูดเกี่ยวกับ -t:

แสดงผลในรูปแบบตาราง นี่เป็นค่าเริ่มต้นสำหรับการใช้แบบโต้ตอบ แต่สามารถใช้ในการสร้างตารางผลลัพธ์ในโหมดแบตช์
ดังนั้นเมื่อคุณเรียกใช้ mysql จากพรอมต์คุณจะได้รับรูปแบบตารางที่ดี แต่เมื่อคุณเรียกใช้ใน "batch mode" (ตัวอย่างเช่นภายในสคริปต์หรือในกรณีนี้ watch ) คุณไม่ได้รับการจัดรูปแบบโดยไม่ใช้ -t. สิ่งที่คุณต้องการอาจเป็นรูปแบบของสิ่งนี้: watch -n 1 'mysql -t -e "describe table" database' ซึ่งจะคืนค่าตารางที่จัดรูปแบบไว้อย่างดี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.