# 26.4.9 信息_SCHEMA INNODB_列表

INNODB_COLUMNS表提供有关的元数据InnoDB表列。

有关相关使用信息和示例,请参阅第 15.15.3 节,“InnoDB 信息_SCHEMA 模式对象表”.

INNODB_COLUMNS表有这些列:

  • TABLE_ID

    表示与列关联的表的标识符;相同的值INNODB_TABLES.TABLE_ID.

  • 姓名

    列的名称。这些名称可以是大写或小写,具体取决于lower_case_table_names环境。列没有特殊的系统保留名称。

  • POS

    表中列的序号位置,从 0 开始并按顺序递增。当删除一列时,其余列将重新排序,以使序列没有间隙。这POS虚拟生成列的值对列的序列号和列的顺序位置进行编码。有关详细信息,请参阅POS中的列描述第 26.4.29 节,“信息_SCHEMA INNODB_虚拟表”.

  • 类型

    代表“主要类型”。列类型的数字标识符。1 =VARCHAR, 2 =字符, 3 =固定二进制, 4 =二进制, 5 =斑点, 6 =INT, 7 =SYS_CHILD, 8 =系统, 9 =漂浮, 10 =双倍的, 11 =十进制, 12 =VARMYSQL, 13 =MYSQL, 14 =几何学.

  • PRTYPE

    InnoDB“精确类型”,一个二进制值,其位表示 MySQL 数据类型、字符集代码和可空性。

  • 列长度​​,例如 4 表示INT和 8 为大整数.对于多字节字符集中的字符列,此长度值是表示定义所需的最大字节长度,例如VARCHAR(*ñ*);也就是说,它可能是2**ñ*,3**ñ*,依此类推,具体取决于字符编码。

  • HAS_DEFAULT

    一个布尔值,指示是否使用立即添加的列更改表...添加列算法=即时有一个默认值。立即添加的所有列都有一个默认值,这使得该列成为该列是否被立即添加的指示器。

  • 默认值

    使用立即添加的列的初始默认值更改表...添加列算法=即时.如果默认值为空值或未指定,此栏报告空值.明确指定的非空值默认值以内部二进制格式显示。列默认值的后续修改不会更改此列报告的值。

# 例子

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

# 笔记

  • 你必须拥有过程查询此表的权限。

  • 使用INFORMATION_SCHEMA 表或显示列语句以查看有关此表列的其他信息,包括数据类型和默认值。