ROUTINES表
该ROUTINES表提供有关存储例程(存储过程和存储函数)的信息。该ROUTINES表不包括内置SQL函数或用户定义函数(UDF)。
该ROUTINES表包含以下列:
SPECIFIC_NAME例程的名称。
ROUTINE_CATALOG例程所属的目录的名称。此值始终为
def。ROUTINE_SCHEMA例程所属的模式(数据库)的名称。
ROUTINE_NAME例程的名称。
ROUTINE_TYPEPROCEDURE用于存储过程,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_DETERMINISTICYES或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_CLIENTcharacter_set_client创建例程时系统变量的会话值。COLLATION_CONNECTIONcollation_connection创建例程时系统变量的会话值。DATABASE_COLLATION与例程相关联的数据库的整理。
注意
- 若要参见有关日常信息,你必须命名为常规用户
DEFINER,有SHOW_ROUTINE特权,有SELECT特权在全球范围内,或有CREATE ROUTINE,ALTER ROUTINE或EXECUTE在包括常规的作用域授予特权。该ROUTINE_DEFINITION列是NULL如果你只有CREATE ROUTINE,ALTER ROUTINE或EXECUTE。 - 该
PARAMETERS表中还提供了有关存储的函数返回值的信息。可以将存储函数的返回值行标识为ORDINAL_POSITION值为0的行。 
