28.4.9 INFORMATION_SCHEMA INNODB_ COLUMNS 表
INNODB_COLUMNS 表提供了关于 InnoDB 表列的元数据。
有关使用信息和示例,请参见第17.15.3节,“InnoDB INFORMATION_ SCHEMA Schema Object Tables”。
INNODB_COLUMNS 表具有以下列:
-
TABLE_ID
表示与列相关的表的标识符;与
INNODB_TABLES.TABLE_ID
相同的值。 -
NAME
列名。这些名称可以是大写或小写,取决于
lower_ case_table_names
设置。没有特殊的系统保留名称用于列。 -
POS
表中的列的顺序号,从 0 开始,Sequentially递增。当删除一个列时,剩余的列将重新排序,以避免空缺。虚拟生成列的
POS
值编码了列的顺序号和 ordinal位置。更多信息,请参见第28.4.29节,“The INFORMATION_SCHEMA INNODB_VIRTUAL Table”中的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
列长度,例如4为
INT
,8为BIGINT
。对于多字节字符集的字符列,这个长度值是表示定义,如VARCHAR(
所需的最大字节数;也就是说,它可能是N
)2*
、N
3*
等,取决于字符编码。N
-
HAS_DEFAULT
一个布尔值,指示使用
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
语句来查看该表的列信息,包括数据类型和默认值。