information_schema.routines 详解
时间: 2024-02-23 17:02:03 浏览: 294
`information_schema.routines` 是 MySQL 系统数据库 `information_schema` 中的一个表,用于存储数据库中所有存储过程和函数的信息。该表包含以下列:
- `SPECIFIC_NAME`:存储过程或函数的唯一名称。
- `ROUTINE_CATALOG`:存储过程或函数所属的数据库名称。
- `ROUTINE_SCHEMA`:存储过程或函数所属的数据库名称。
- `ROUTINE_NAME`:存储过程或函数的名称。
- `ROUTINE_TYPE`:存储过程或函数的类型,取值为 "PROCEDURE" 或 "FUNCTION"。
- `DTD_IDENTIFIER`:存储过程或函数的返回类型,以及参数的类型和数量的描述。
- `ROUTINE_BODY`:存储过程或函数的实现体,取值为 "SQL" 或 "NATIVE"。
- `ROUTINE_DEFINITION`:存储过程或函数的定义体,即存储过程或函数的 SQL 语句。
- `EXTERNAL_NAME`:当存储过程或函数是外部函数时,存储外部函数的名称。
- `EXTERNAL_LANGUAGE`:当存储过程或函数是外部函数时,存储外部函数的编程语言。
使用 `information_schema.routines` 可以方便地查询数据库中所有存储过程和函数的信息,例如可以通过以下语句查询数据库中所有存储过程和函数的名称和类型:
```sql
SELECT ROUTINE_NAME, ROUTINE_TYPE FROM information_schema.routines;
```
该表还可以用于查询指定存储过程或函数的详细信息,例如可以通过以下语句查询指定存储过程的定义体:
```sql
SELECT ROUTINE_DEFINITION FROM information_schema.routines WHERE ROUTINE_NAME = 'my_proc';
```
需要注意的是,只有当用户对存储过程或函数有访问权限时,才能查询到该存储过程或函数的信息。
阅读全文