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
。PRTYPE
InnoDB
「精確類型」,一個二進位值,其位元代表 MySQL 資料類型、字元集代碼和可否為 Null 值。LEN
欄位長度,例如
INT
為 4,BIGINT
為 8。對於多位元組字元集中的字元欄位,此長度值是代表VARCHAR(
等定義所需的最大位元組長度;也就是說,它可能是N
)2*
、N
3*
等等,具體取決於字元編碼。N
HAS_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
陳述式來檢視此表格欄位的其他資訊,包括資料類型和預設值。