INNODB_COLUMNS 資料表提供關於 InnoDB 資料表欄位的中繼資料。
如需相關的使用資訊與範例,請參閱第 17.15.3 節,「InnoDB INFORMATION_SCHEMA 結構描述物件資料表」。
INNODB_COLUMNS 資料表具有下列欄位
TABLE_ID代表與欄位相關聯之資料表的識別碼;與
INNODB_TABLES.TABLE_ID的值相同。NAME欄位的名稱。這些名稱可以是依照
lower_case_table_names設定而定的 uppercase 或 lowercase。欄位沒有特殊的系統保留名稱。POS欄位在資料表中的序數位置,從 0 開始並依序遞增。當欄位被捨棄時,剩餘的欄位會重新排序,使序列沒有間隙。虛擬產生欄位的
POS值會編碼欄位的序列號和序數位置。如需更多資訊,請參閱第 28.4.29 節,「INFORMATION_SCHEMA INNODB_VIRTUAL 資料表」中的POS欄位說明。MTYPE代表 「主要類型」。欄位類型的數值識別碼。1 =
VARCHAR,2 =CHAR,3 =FIXBINARY,4 =BINARY,5 =BLOB,6 =INT,7 =SYS_CHILD,8 =SYS,9 =FLOAT,10 =DOUBLE,11 =DECIMAL,12 =VARMYSQL,13 =MYSQL,14 =GEOMETRY。PRTYPEInnoDB「精確類型」,一個二進位值,其位元代表 MySQL 資料類型、字元集代碼和可否為 Null 值。LEN欄位長度,例如
INT為 4,BIGINT為 8。對於多位元組字元集中的字元欄位,此長度值是代表VARCHAR(等定義所需的最大位元組長度;也就是說,它可能是N)2*、N3*等等,具體取決於字元編碼。NHAS_DEFAULT布林值,指出是否使用
ALGORITHM=INSTANT的ALTER TABLE ... ADD COLUMN立即新增的欄位具有預設值。所有立即新增的欄位都有預設值,這使得此欄位成為是否立即新增欄位的指示器。DEFAULT_VALUE使用
ALTER TABLE ... ADD COLUMN並搭配ALGORITHM=INSTANT立即新增的欄位的初始預設值。如果預設值為NULL或未指定,此欄位會回報NULL。明確指定的非NULL預設值會以內部二進位格式顯示。後續修改欄位預設值不會變更此欄位所回報的值。
範例
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_COLUMNS where TABLE_ID = 71\G
*************************** 1. row ***************************
TABLE_ID: 71
NAME: col1
POS: 0
MTYPE: 6
PRTYPE: 1027
LEN: 4
HAS_DEFAULT: 0
DEFAULT_VALUE: NULL
*************************** 2. row ***************************
TABLE_ID: 71
NAME: col2
POS: 1
MTYPE: 2
PRTYPE: 524542
LEN: 10
HAS_DEFAULT: 0
DEFAULT_VALUE: NULL
*************************** 3. row ***************************
TABLE_ID: 71
NAME: col3
POS: 2
MTYPE: 1
PRTYPE: 524303
LEN: 10
HAS_DEFAULT: 0
DEFAULT_VALUE: NULL
注意事項
您必須擁有
PROCESS權限才能查詢此表格。請使用
INFORMATION_SCHEMA的COLUMNS表格或SHOW COLUMNS陳述式來檢視此表格欄位的其他資訊,包括資料類型和預設值。