INNODB_SYS_COLUMNS
表提供表列的元数据
,InnoDB
相当于数据字典
SYS_COLUMNS
中表的信息。InnoDB
有关相关的使用信息和示例,请参阅 第 14.16.3 节,“InnoDB INFORMATION_SCHEMA 系统表”。
该INNODB_SYS_COLUMNS
表有以下列:
TABLE_ID
表示与列关联的表的标识符;与 相同的值
INNODB_SYS_TABLES.TABLE_ID
。NAME
列的名称。这些名称可以是大写或小写,具体取决于
lower_case_table_names
设置。列没有特殊的系统保留名称。POS
表中列的序号位置,从 0 开始依次递增。当删除一列时,剩余的列将重新排序,以便序列没有间隙。虚拟生成列的
POS
值对列的列序列号和序号位置进行编码。有关更多信息,请参阅第 24.4.26 节,“INFORMATION_SCHEMA INNODB_SYS_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
列长度,例如 4
INT
和 8BIGINT
。对于多字节字符集中的字符列,此长度值是表示诸如 ;之类的定义所需的最大字节长度。也就是说,它可能是 、 等,具体取决于字符编码。VARCHAR(
N
)2*
N
3*
N
例子
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
笔记
您必须具有
PROCESS
查询此表的权限。使用
INFORMATION_SCHEMA
COLUMNS
表或SHOW COLUMNS
语句查看有关此表的列的其他信息,包括数据类型和默认值。