28.3.30 INFORMATION_SCHEMA ROUTINES 表
ROUTINES
表提供关于存储程序(存储过程和存储函数)的信息。ROUTINES
表不包括内置(native)函数或可加载函数。
ROUTINES
表具有以下列:
-
SPECIFIC_NAME
该程序的名称。
-
ROUTINE_CATALOG
该程序所属的目录的名称。这一值总是
def
。 -
ROUTINE_SCHEMA
该程序所属的架构(数据库)的名称。
-
ROUTINE_NAME
该程序的名称。
-
ROUTINE_TYPE
PROCEDURE
(存储过程),FUNCTION
(存储函数). -
DATA_TYPE
如果该程序是存储函数,则返回值数据类型。如果该程序是存储过程,这一值为空。
DATA_TYPE
值仅包含类型名称,而不包括其他信息。DTD_IDENTIFIER
值包含类型名称和可能的其他信息,如精度或长度。 -
CHARACTER_MAX_LENGTH
存储函数字符串返回值的最大长度(字符)。如果该routine是一个存储过程,这个值为
NULL
. -
CHARACTER_OCTET_LENGTH
存储函数字符串返回值的最大长度(字节)。如果该routine是一个存储过程,这个值为
NULL
. -
NUMERIC_PRECISION
存储函数数字返回值的数值精度。如果该routine是一个存储过程,这个值为
NULL
. -
NUMERIC_SCALE
存储函数数字返回值的数值scale。如果该routine是一个存储过程,这个值为
NULL
. -
DATETIME_PRECISION
存储函数时间戳返回值的小数秒精度。如果该routine是一个存储过程,这个值为
NULL
. -
CHARACTER_SET_NAME
存储函数字符字符串返回值的字符集名称。如果该routine是一个存储过程,这个值为
NULL
. -
COLLATION_NAME
存储函数字符字符串返回值的排序规则名称。如果该routine是一个存储过程,这个值为
NULL
. -
DTD_IDENTIFIER
如果该routine是一个存储函数,则返回值数据类型。如果该routine是一个存储过程,这个值为空。
数据类型值仅包含类型名称,不包括其他信息。DTD标识符值包含类型名称和可能的其他信息,如精度或长度。
-
ROUTINE_BODY
存储程序定义使用的语言。这一值始终是
SQL
。 -
ROUTINE_DEFINITION
执行存储程序的 SQL 语句文本。
-
EXTERNAL_NAME
这一个值始终是
NULL
。 -
EXTERNAL_LANGUAGE
存储程序的语言。该值来自
mysql.routines
数据字典表中的external_language
列。 -
PARAMETER_STYLE
这一个值始终是
SQL
。 -
IS_DETERMINISTIC
YES 或 NO,取决于存储程序是否定义了
DETERMINISTIC
特性。 -
SQL_DATA_ACCESS
存储程序的数据访问特性。该值是
CONTAINS SQL
、NO SQL
、READS SQL DATA
或MODIFIES SQL DATA
之一。 -
SQL_PATH
这一个值始终是
NULL
。 -
SECURITY_TYPE
该存储程序的
SQL SECURITY
特性。值为DEFINER
或INVOKER
之一。 -
CREATED
该存储程序创建的日期和时间。这是一个
TIMESTAMP
值。 -
LAST_ALTERED
该存储程序最后修改的日期和时间。这是一个
TIMESTAMP
值。如果该存储程序自创建以来未被修改,这个值与CREATED
值相同。 -
SQL_MODE
在创建或更改该存储程序时有效的 SQL 模式,以及该存储程序执行时的模态。 permitted values, see Section 7.1.11, “Server SQL Modes”。
-
ROUTINE_COMMENT
该存储程序的注释文本,如果存在;否则为空。
-
DEFINER
在
DEFINER
子句中指定的账户(通常是创建该存储程序的用户),以'user_ name
'@'host_name
'格式。 -
CHARACTER_SET_CLIENT
在创建该存储程序时的会话值
character_set_client
系统变量。 -
COLLATION_CONNECTION
创建该routine时的会话值
collation_connection
系统变量。 -
DATABASE_COLLATION
与该routine关联的数据库的排序规则。
-
要查看关于一个routine的信息,您必须是该routine的定义者,拥有
SHOW_ROUTINE
特权,或者在全局级别拥有SELECT
特权,或者在包含该routine的范围内拥有CREATE_ROUTINE
、ALTER_ROUTINE
或EXECUTE
特权。如果您只有CREATE_ROUTINE
、ALTER_ROUTINE
或EXECUTE
特权,ROUTINE_DEFINITION
列将为NULL
。 -
关于存储函数返回值的信息也可以在
PARAMETERS
表中找到。存储函数的返回值行可以通过ORDINAL_POSITION
值为0来识别。