### 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。