24.21 INFORMATION_SCHEMA ROUTINEStable

ROUTINEStable 提供有关存储例程(存储过程和存储函数)的信息。 ROUTINEStable 不包含内置 SQL 函数或用户定义函数(UDF)。

名为“ mysql.proc名称”的列 table 示与INFORMATION_SCHEMA ROUTINEStable 列(如果有)相对应的mysql.proctable 列。

ROUTINEStable 具有以下列:

  • 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

存储例程的语言。 MySQL 计算EXTERNAL_LANGUAGE因此:

  • 如果mysql.proc.language='SQL'EXTERNAL_LANGUAGENULL

    • 否则,EXTERNAL_LANGUAGEmysql.proc.language中的内容。但是,我们还没有外部语言,因此它始终是NULL
  • PARAMETER_STYLE

此值始终为SQL

  • IS_DETERMINISTIC

YESNO,取决于例程是否使用DETERMINISTIC特性定义。

  • SQL_DATA_ACCESS

例程的数据访问 Feature。该值为CONTAINS SQLNO SQLREADS SQL DATAMODIFIES SQL DATA之一。

  • SQL_PATH

此值始终为NULL

  • SECURITY_TYPE

例行程序SQL SECURITYFeature。该值为DEFINERINVOKER之一。

  • CREATED

创建例程的日期和时间。这是TIMESTAMP的值。

  • LAST_ALTERED

例程的最后修改日期和时间。这是TIMESTAMP的值。如果例程自创建以来尚未修改,则该值与CREATED值相同。

  • SQL_MODE

创建或更改例程时有效的 SQL 模式,在该模式下执行例程。有关允许的值,请参见第 5.1.10 节“服务器 SQL 模式”

  • ROUTINE_COMMENT

Comments 文本(如果例程包含一个)。如果不是,则此值为空。

  • DEFINER

DEFINER子句中命名的帐户(通常是创建例程的用户),格式为'user_name'@'host_name'

  • CHARACTER_SET_CLIENT

创建例程时,character_set_client系统变量的会话值。

  • COLLATION_CONNECTION

创建例程时,collation_connection系统变量的会话值。

  • DATABASE_COLLATION

与例程相关联的数据库的整理。

Notes

  • 要查看有关例程的信息,您必须是例程DEFINER子句中命名的用户,或具有对mysql.proctable 的SELECT访问权限。如果您没有例程本身的特权,则ROUTINE_DEFINITION列显示的值为NULL

  • PARAMETERStable 中也提供了有关存储的函数返回值的信息。可以将存储函数的返回值行标识为ORDINAL_POSITION值为 0 的行。