INNODB_COLUMNS
表提供了有关 InnoDB
表列的元数据。
有关相关用法信息和示例,请参见 第 17.15.3 节,“InnoDB INFORMATION_SCHEMA 架构对象表”.
INNODB_COLUMNS
表具有以下列
TABLE_ID
一个标识符,代表与该列关联的表;与
INNODB_TABLES.TABLE_ID
相同的值。NAME
列的名称。这些名称可以是大写或小写,具体取决于
lower_case_table_names
设置。列没有特殊的系统保留名称。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 数据类型、字符集代码和可空性。LEN
列的长度,例如
INT
为 4,BIGINT
为 8。对于多字节字符集中的字符列,此长度值是表示定义(如VARCHAR(
)所需的字节最大长度;也就是说,它可能是N
)2*
、N
3*
等,具体取决于字符编码。N
HAS_DEFAULT
一个布尔值,指示使用
ALGORITHM=INSTANT
的ALTER TABLE ... ADD COLUMN
立即添加的列是否具有默认值。所有立即添加的列都具有默认值,这使得该列成为立即添加的列的指示器。DEFAULT_VALUE
使用
ALGORITHM=INSTANT
的ALTER TABLE ... ADD COLUMN
立即添加的列的初始默认值。如果默认值为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
语句来查看有关此表列的更多信息,包括数据类型和默认值。