查看表結構的三種方法


之前寫代碼模版生成工具的時候,想要根據表結構直接生成相關代碼,需要獲取表字段和相關信息,走過一些彎路,特此記錄。

本文對應mysql版本:mysql 5.6

show create table

show create table 表名稱

這也是我每次下意識想到的語句。語義好記,可以直接查看建表語句,但不便於代碼處理。

information_schema.COLUMNS

select * from information_schema.COLUMNS where TABLE_SCHEMA = '庫名稱' and TABLE_NAME = '表名稱'

相對show create table而言,相對簡單,信息全面,可以查詢出來字段的名稱、類型、鍵、權限、注釋和其他信息。為了獲取字段名稱,故我腳本中使用這個作為獲取表結構的方法。

desc

desc 表名稱

簡單易用,可以獲取到 COLUMNS 中的比較重要的字段:名稱、類型、是否為空、鍵、默認值、額外信息。但無法獲取字段的注釋。

附:information_schema.COLUMNS字段和含義

字段名稱 含義
TABLE_CATALOG 表類型(沒搞懂干啥用)
TABLE_SCHEMA 所屬庫名稱
TABLE_NAME 表名稱
COLUMN_NAME 字段名稱
ORDINAL_POSITION 位置序號
COLUMN_DEFAULT 默認值
IS_NULLABLE 是否可為空
DATA_TYPE 數據類型
CHARACTER_MAXIMUM_LENGTH 字符串最大長度
(數值類型為空)
CHARACTER_OCTET_LENGTH 字符串最大存儲長度
(一般與上一字段相同)
NUMERIC_PRECISION 數值精度
(非數值類型為空)
NUMERIC_SCALE 數值小數位數
(非數值類型為空)
DATETIME_PRECISION 日期精度
CHARACTER_SET_NAME 編碼方式
COLLATION_NAME 排序方式
COLUMN_TYPE 字段類型
COLUMN_KEY 字段涉及的key
(主鍵、唯一鍵等)
EXTRA 其他(如 auto_increment)
PRIVILEGES 權限
COLUMN_COMMENT 字段注釋
GENERATION_EXPRESSION 代表達式
(這個沒搞懂,mysql可以表繼承?)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM