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模式,在该模式下执行例程。有关允许的值,请参见第5.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 在包括常规的作用域授予特权。该 ROUTINE_DEFINITION列是 NULL如果你只有 CREATE ROUTINE, ALTER ROUTINE或 EXECUTE。
该PARAMETERS 表中还提供了有关存储的函数返回值的信息。可以将存储函数的返回值行标识为 ORDINAL_POSITION值为0的行。