### 26.3.30 信息\_SCHEMA 例程表

[](<>)

这[`例行公事`](information-schema-routines-table.html)表提供有关存储例程（存储过程和存储函数）的信息。这[`例行公事`](information-schema-routines-table.html)table 不包括内置（本机）函数或可加载函数。

这[`例行公事`](information-schema-routines-table.html)表有这些列：

-   `SPECIFIC_NAME`

    例程的名称。

-   `ROUTINE_CATALOG`

    例程所属的目录的名称。这个值总是`定义`.

-   `ROUTINE_SCHEMA`

    例程所属的模式（数据库）的名称。

-   `ROUTINE_NAME`

    例程的名称。

-   `ROUTINE_TYPE`

    `程序`对于存储过程，`功能`用于存储功能。

-   `数据类型`

    如果例程是存储函数，则返回值数据类型。如果例程是存储过程，则此值为空。

    这`数据类型`value 只是类型名称，没有其他信息。这`DTD_IDENTIFIER`value 包含类型名称和可能的其他信息，例如精度或长度。

-   `CHARACTER_MAXIMUM_LENGTH`

    对于存储的函数字符串返回值，以字符为单位的最大长度。如果例程是存储过程，则此值为`空值`.

-   `CHARACTER_OCTET_LENGTH`

    对于存储的函数字符串返回值，最大长度（以字节为单位）。如果例程是存储过程，则此值为`空值`.

-   `NUMERIC_PRECISION`

    对于存储的函数数值返回值，数值精度。如果例程是存储过程，则此值为`空值`.

-   `NUMERIC_SCALE`

    对于存储的函数数字返回值，数字刻度。如果例程是存储过程，则此值为`空值`.

-   `DATETIME_PRECISION`

    对于存储的函数时间返回值，小数秒精度。如果例程是存储过程，则此值为`空值`.

-   `CHARACTER_SET_NAME`

    对于存储的函数字符串返回值，字符集名称。如果例程是存储过程，则此值为`空值`.

-   `COLLATION_NAME`

    对于存储的函数字符串返回值，排序规则名称。如果例程是存储过程，则此值为`空值`.

-   `DTD_IDENTIFIER`

    如果例程是存储函数，则返回值数据类型。如果例程是存储过程，则此值为空。

    这`数据类型`value 只是类型名称，没有其他信息。这`DTD_IDENTIFIER`value 包含类型名称和可能的其他信息，例如精度或长度。

-   `ROUTINE_BODY`

    用于例程定义的语言。这个值总是`SQL`.

-   `ROUTINE_DEFINITION`

    例程执行的 SQL 语句的文本。

-   `EXTERNAL_NAME`

    这个值总是`空值`.

-   `外部语言`

    存储例程的语言。该值是从`外部语言`的列`mysql.routines`数据字典表。

-   `PARAMETER_STYLE`

    这个值总是`SQL`.

-   `IS_DETERMINISTIC`

    `是的`要么`不`，取决于例程是否用`确定性`特征。

-   `SQL_DATA_ACCESS`

    例程的数据访问特性。该值是其中之一`包含 SQL`,`没有 SQL`,`读取 SQL 数据`， 要么`修改 SQL 数据`.

-   `SQL_PATH`

    这个值总是`空值`.

-   `SECURITY_TYPE`

    例行公事`SQL 安全`特征。该值是其中之一`定义者`要么`调用者`.

-   `已创建`

    创建例程的日期和时间。这是一个[`时间戳`](datetime.html)价值。

-   `LAST_ALTERED`

    上次修改例程的日期和时间。这是一个[`时间戳`](datetime.html)价值。如果例程自创建以来未修改，则此值与`已创建`价值。

-   `SQL_MODE`

    创建或更改例程时生效的 SQL 模式，并且在该模式下执行例程。有关允许的值，请参阅[第 5.1.11 节，“服务器 SQL 模式”](sql-mode.html).

-   `ROUTINE_COMMENT`

    注释的文本，如果例程有的话。如果不是，则此值为空。

-   `定义者`

    中命名的帐户`定义者`子句（通常是创建例程的用户），在`'*`用户名`*'@'*`主机名`*'`格式。

-   `CHARACTER_SET_CLIENT`

    会话值[`character_set_client`](server-system-variables.html#sysvar_character_set_client)创建例程时的系统变量。

-   `COLLATION_CONNECTION`

    会话值[`collat​​ion_connection`](server-system-variables.html#sysvar_collation_connection)创建例程时的系统变量。

-   `DATABASE_COLLATION`

    与例程关联的数据库的排序规则。

#### 笔记

-   要查看有关例程的信息，您必须是命名为例程的用户`定义者`， 有[`SHOW_ROUTINE`](privileges-provided.html#priv_show-routine)特权，拥有[`选择`](privileges-provided.html#priv_select)全局级别的特权，或拥有[`创建例程`](privileges-provided.html#priv_create-routine),[`改变常规`](privileges-provided.html#priv_alter-routine)， 要么[`执行`](privileges-provided.html#priv_execute)在包含例程的范围内授予的特权。这`ROUTINE_DEFINITION`列是`空值`如果你只有[`创建例程`](privileges-provided.html#priv_create-routine),[`改变常规`](privileges-provided.html#priv_alter-routine)， 要么[`执行`](privileges-provided.html#priv_execute).

-   有关存储的函数返回值的信息也可在[`参数`](information-schema-parameters-table.html)桌子。存储函数的返回值行可以标识为具有`ORDINAL_POSITION`值为 0。
