该 ROUTINES
表提供了存储过程(存储过程和存储函数)的信息。该 ROUTINES
表不包括内置(本机)函数或可加载函数。
该 ROUTINES
表具有以下列:
-
SPECIFIC_NAME
该过程的名称。
-
ROUTINE_CATALOG
该过程所属的目录名称。该值始终为
def
。 -
ROUTINE_SCHEMA
该过程所属的模式(数据库)名称。
-
ROUTINE_NAME
该过程的名称。
-
ROUTINE_TYPE
PROCEDURE
对于存储过程,FUNCTION
对于存储函数。 -
DATA_TYPE
如果该过程是一个存储函数,则返回值的数据类型。如果该过程是一个存储过程,则该值为空。
该
DATA_TYPE
值仅是类型名称,不包含其他信息。该DTD_IDENTIFIER
值包含类型名称和可能的其他信息,例如精度或长度。 -
CHARACTER_MAXIMUM_LENGTH
对于存储函数字符串返回值的最大长度。如果该过程是一个存储过程,则该值为
NULL
。 -
CHARACTER_OCTET_LENGTH
对于存储函数字符串返回值的最大字节长度。如果该过程是一个存储过程,则该值为
NULL
。 -
NUMERIC_PRECISION
对于存储函数数字返回值的数字精度。如果该过程是一个存储过程,则该值为
NULL
。 -
NUMERIC_SCALE
对于存储函数数字返回值的数字刻度。如果该过程是一个存储过程,则该值为
NULL
。 -
DATETIME_PRECISION
对于存储函数时间返回值的分秒精度。如果该过程是一个存储过程,则该值为
NULL
。 -
CHARACTER_SET_NAME
对于存储函数字符字符串返回值的字符集名称。如果该过程是一个存储过程,则该值为
NULL
。 -
COLLATION_NAME
对于存储函数字符字符串返回值的排序名称。如果该过程是一个存储过程,则该值为
NULL
。 -
DTD_IDENTIFIER
如果该过程是一个存储函数,则返回值的数据类型。如果该过程是一个存储过程,则该值为空。
该
DATA_TYPE
值仅是类型名称,不包含其他信息。该DTD_IDENTIFIER
值包含类型名称和可能的其他信息,例如精度或长度。 -
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
。 -
安全类型
该例程的
SQL 安全
特征。该值是DEFINER
或INVOKER
之一。 -
创建时间
该例程创建的日期和时间。这是一个
TIMESTAMP
值。 -
最后修改时间
该例程最后修改的日期和时间。这是一个
TIMESTAMP
值。如果该例程自创建以来未被修改,则该值与创建时间
值相同。 -
SQL_MODE
该例程创建或修改时生效的 SQL 模式,以及该例程执行时的模式。有关允许的值,请参阅 第 7.1.11 节,“服务器 SQL 模式”。
-
ROUTINE_COMMENT
该例程的注释文本,如果没有,则该值为空。
-
DEFINER
在
DEFINER
子句中命名的帐户(通常是创建该例程的用户),以'
格式。user_name
'@'host_name
' -
CHARACTER_SET_CLIENT
该例程创建时的会话值
character_set_client
系统变量。 -
COLLATION_CONNECTION
该例程创建时的会话值
collation_connection
系统变量。 -
DATABASE_COLLATION
该例程关联的数据库的排序规则。
注意
-
要查看例程的信息,必须是该例程的
DEFINER
用户,拥有SHOW_ROUTINE
权限,在全局级别拥有SELECT
权限,或者拥有CREATE ROUTINE
、ALTER ROUTINE
或EXECUTE
权限在该例程的作用域内。如果您只有CREATE ROUTINE
、ALTER ROUTINE
或EXECUTE
权限,则ROUTINE_DEFINITION
列为空。 -
存储函数返回值的信息也可以在
PARAMETERS
表中找到。存储函数的返回值行可以通过其ORDINAL_POSITION
值为 0 来标识。