该ROUTINES表提供有关存储例程(存储过程和存储函数)的信息。该ROUTINES表不包括内置(本机)函数或可加载函数。
名为“ mysql.procName ”的列
表示与表列(如果有)mysql.proc对应的INFORMATION_SCHEMA
ROUTINES表列。
该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存储例程的语言。MySQL 是
EXTERNAL_LANGUAGE这样计算的:如果是
mysql.proc.language='SQL'_EXTERNAL_LANGUAGENULL否则,
EXTERNAL_LANGUAGE就是mysql.proc.language. 但是,我们还没有外部语言,所以它总是NULL。
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 模式,例程在该模式下执行。有关允许的值,请参阅第 5.1.10 节,“服务器 SQL 模式”。
ROUTINE_COMMENT评论的文本,如果例程有的话。如果不是,则此值为空。
DEFINER子句中指定的帐户
DEFINER(通常是创建例程的用户), 格式为。'user_name'@'host_name'CHARACTER_SET_CLIENTcharacter_set_client创建例程时系统变量 的会话值 。COLLATION_CONNECTIONcollation_connection创建例程时系统变量 的会话值 。DATABASE_COLLATION与例程关联的数据库的排序规则。
笔记
要查看有关例程的信息,您必须是例程
DEFINER子句中指定的用户或有权SELECT访问该mysql.proc表。如果您没有例程本身的权限,则为该ROUTINE_DEFINITION列显示的值为NULL。表中还提供了有关存储的函数返回值的信息
PARAMETERS。存储函数的返回值行可以标识为ORDINAL_POSITION值为 0 的行。