该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
存储例程的语言。该值是从 数据字典表 的
external_language
列中 读取的。mysql.routines
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 模式,例程在该模式下执行。有关允许的值,请参阅第 5.1.11 节,“服务器 SQL 模式”。
ROUTINE_COMMENT
评论的文本,如果例程有的话。如果不是,则此值为空。
DEFINER
子句中指定的帐户
DEFINER
(通常是创建例程的用户), 格式为。'
user_name
'@'host_name
'CHARACTER_SET_CLIENT
character_set_client
创建例程时系统变量 的会话值 。COLLATION_CONNECTION
collation_connection
创建例程时系统变量 的会话值 。DATABASE_COLLATION
与例程关联的数据库的排序规则。
笔记
要查看有关例程的信息,您必须是名为 routine 的用户
DEFINER
,拥有SHOW_ROUTINE
特权,具有SELECT
全局级别的特权,或者 在包含例程的范围内授予CREATE ROUTINE
、ALTER ROUTINE
或特权。EXECUTE
该ROUTINE_DEFINITION
列是NULL
您是否只有CREATE ROUTINE
、ALTER ROUTINE
或EXECUTE
。表中还提供了有关存储的函数返回值的信息
PARAMETERS
。存储函数的返回值行可以标识为ORDINAL_POSITION
值为 0 的行。