24.32.16 INFORMATION_SCHEMA INNODB_SYS_COLUMNStable
INNODB_SYS_COLUMNStable 提供有关InnoDB
table 列的元数据,等效于InnoDB
数据字典中SYS_COLUMNS
table 的信息。
有关相关用法信息和示例,请参见第 14.16.3 节“ InnoDB INFORMATION_SCHEMA 系统 table”。
INNODB_SYS_COLUMNStable 具有以下列:
TABLE_ID
代 table 与该列关联的 table 的标识符;与INNODB_SYS_TABLES.TABLE_ID
相同的值。
NAME
列的名称。这些名称可以大写或小写,具体取决于lower_case_table_names设置。列没有特殊的系统保留名称。
POS
table 格在 table 格中的 Sequences 位置,从 0 开始依次递增。当删除一列时,其余的列将重新排序,以使序列没有间隙。虚拟生成的列的POS
值对列的序列号和列的 Sequences 位置进行编码。有关更多信息,请参见第 24.32.25 节,“ INFORMATION_SCHEMA INNODB_SYS_VIRTUALtable”中的POS
列说明。
MTYPE
代 table“主要类型”。列类型的数字标识符。 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
“精确类型”,一个二进制值,带有 table 示 MySQL 数据类型,字符集代码和可空性的位。
LEN
列长,例如INT
为 4,BIGINT
为 8.对于多字节字符集中的字符列,此长度值是 table 示诸如VARCHAR(N)
之类的定义所需的最大字节长度。也就是说,根据字符编码,它可能是2*N
,3*N
等。
Example
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS where TABLE_ID = 71\G
*************************** 1. row ***************************
TABLE_ID: 71
NAME: col1
POS: 0
MTYPE: 6
PRTYPE: 1027
LEN: 4
*************************** 2. row ***************************
TABLE_ID: 71
NAME: col2
POS: 1
MTYPE: 2
PRTYPE: 524542
LEN: 10
*************************** 3. row ***************************
TABLE_ID: 71
NAME: col3
POS: 2
MTYPE: 1
PRTYPE: 524303
LEN: 10
Notes
-
您必须具有PROCESS特权才能查询此 table。
-
使用
INFORMATION_SCHEMA
COLUMNStable 或SHOW COLUMNS语句查看有关此 table 列的其他信息,包括数据类型和默认值。