ROUTINES表
该ROUTINES
表提供有关存储例程(存储过程和存储函数)的信息。该ROUTINES
表不包括内置SQL函数或用户定义函数(UDF)。
该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模式,在该模式下执行例程。有关允许的值,请参见“服务器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
在包括常规的作用域授予特权。该ROUTINE_DEFINITION
列是NULL
如果你只有CREATE ROUTINE
,ALTER ROUTINE
或EXECUTE
。 - 该
PARAMETERS
表中还提供了有关存储的函数返回值的信息。可以将存储函数的返回值行标识为ORDINAL_POSITION
值为0的行。