该 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值对于虚拟生成的列编码列序号和列的顺序位置。有关更多信息,请参阅POS列描述在 第 28.4.29 节,“INFORMATION_SCHEMA INNODB_VIRTUAL 表”。 -
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 数据类型、字符集代码和可空性。
-
LEN列的长度,例如
INT的长度为 4,BIGINT的长度为 8。对于多字节字符集中的字符列,这个长度值是表示定义的最大长度,例如VARCHAR(;即可能是N)2*,N3*等,取决于字符编码。N -
HAS_DEFAULT一个布尔值,指示使用
ALTER TABLE ... ADD COLUMNinstantly 添加的列是否具有默认值。所有instantly 添加的列都具有默认值,这使得该列成为指示列是否instantly 添加的指示器。 -
DEFAULT_VALUE使用
ALTER TABLE ... ADD COLUMNinstantly 添加的列的初始默认值。如果默认值为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_SCHEMACOLUMNS表或SHOW COLUMNS语句来查看该表的列的更多信息,包括数据类型和默认值。