Skip to content

PARAMETERS

xiaoboluo768 edited this page Jun 7, 2020 · 2 revisions
  • 该表提供有关存储过程和函数的参数信息,以及有关存储函数的返回值的信息。 这些参数信息与mysql.proc表中的param_list列记录的内容类似
  • 该表为InnoDB引擎临时表
  • 表定义语句
CREATE TEMPORARY TABLE `PARAMETERS` (
  `SPECIFIC_CATALOG` varchar(512) NOT NULL DEFAULT '',
  `SPECIFIC_SCHEMA` varchar(64) NOT NULL DEFAULT '',
  `SPECIFIC_NAME` varchar(64) NOT NULL DEFAULT '',
  `ORDINAL_POSITION` int(21) NOT NULL DEFAULT '0',
  `PARAMETER_MODE` varchar(5) DEFAULT NULL,
  `PARAMETER_NAME` varchar(64) DEFAULT NULL,
  `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
  `CHARACTER_MAXIMUM_LENGTH` int(21) DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` int(21) DEFAULT NULL,
  `NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_SCALE` int(21) DEFAULT NULL,
  `DATETIME_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_SET_NAME` varchar(64) DEFAULT NULL,
  `COLLATION_NAME` varchar(64) DEFAULT NULL,
  `DTD_IDENTIFIER` longtext NOT NULL,
  `ROUTINE_TYPE` varchar(9) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • 表字段含义
  • SPECIFIC_SCHEMA:存储过程或函数所在的数据库名称
  • SPECIFIC_NAME:存储过程或函数的名称
  • ORDINAL_POSITION:1,2,3,...等大于0的数字用于存储过程和函数的参数个数,0用于函数中RETURNS子句
  • PARAMETER_MODE:有效值为IN,OUT,INOUT(存在RETURNS子句返回数据时该列值为NULL)
  • PARAMETER_NAME:存储过程或函数的参数名称(存在RETURNS子句返回数据时该列值为NULL)
  • DATA_TYPE:与COLUMNS表相同
  • CHARACTER_MAXIMUM_LENGTH:与COLUMNS表相同
  • CHARACTER_OCTET_LENGTH:与COLUMNS表相同
  • NUMERIC_PRECISION:与COLUMNS表相同
  • NUMERIC_SCALE:与COLUMNS表相同
  • DATETIME_PRECISION:与COLUMNS表相同
  • CHARACTER_SET_NAME:与COLUMNS表相同
  • COLLATION_NAME:与COLUMNS表相同
  • DTD_IDENTIFIER:字段定义的数据类型(包含长度和其他字段属性)
  • ROUTINE_TYPE:程序类型,是存储过程还是函数等
  • 表记录内容示例
admin@localhost : information_schema 05:59:15> select * from PARAMETERS where SPECIFIC_NAME='create_synonym_db' limit 1\G;
*************************** 1. row ***************************
        SPECIFIC_CATALOG: def
        SPECIFIC_SCHEMA: sys
          SPECIFIC_NAME: create_synonym_db
        ORDINAL_POSITION: 1
          PARAMETER_MODE: IN
          PARAMETER_NAME: in_db_name
              DATA_TYPE: varchar
CHARACTER_MAXIMUM_LENGTH: 64
  CHARACTER_OCTET_LENGTH: 192
      NUMERIC_PRECISION: NULL
          NUMERIC_SCALE: NULL
      DATETIME_PRECISION: NULL
      CHARACTER_SET_NAME: utf8
          COLLATION_NAME: utf8_general_ci
          DTD_IDENTIFIER: varchar(64)
            ROUTINE_TYPE: PROCEDURE
1 rows in set (0.00 sec)
  • PS:对于存储过程或函数存在连续参数时,ORDINAL_POSITION列值为1,2,3,...这样记录。但对于存储函数中还有一行RETURNS子句的数据类型。它返回值不是一个真实的参数(可能是一堆字符串数据),所以ORDINAL_POSITION列值记录为0,且PARAMETER_NAME和PARAMETER_MODE列值记录为NULL,因为此时函数返回的值没有参数名称,所以不适用

上一篇:OPTIMIZER_TRACE表 |下一篇:PARTITIONS表

Clone this wiki locally