-
Notifications
You must be signed in to change notification settings - Fork 111
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表
- 验证、测试、整理:罗小波
- QQ:309969177
- 提示:本系列文章的主体结构遵循Oracle MySQL 官方 5.7 手册中,关于information_schema、mysql schema、performance_schema、sys schema的章节结构体系,并额外添加了一些验证、测试数据。鉴于本人精力和能力有限,难免出现一些纰漏,欢迎大家踊跃指正!