如何在mysql命令行中看到存储过程或存储函数的列表,如show tables;或显示数据库;命令。
当前回答
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
其他回答
如上所述,
show procedure status;
确实会显示过程列表,但会显示服务器范围内的所有过程。
如果你想只看到一个数据库中的那些,试试这个:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
如果要列出当前所选数据库的存储过程,请
SHOW PROCEDURE STATUS WHERE Db = DATABASE();
它将根据当前选择的数据库列出例程
更新 列出数据库中的函数
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="FUNCTION";
要在数据库中列出例程/存储过程,
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="PROCEDURE";
要列出数据库中的表,
select * from information_schema.TABLES WHERE TABLE_TYPE="BASE TABLE" AND TABLE_SCHEMA="YOUR DATABASE NAME";
要列出数据库中的视图,
方法1:
select * from information_schema.TABLES WHERE TABLE_TYPE="VIEW" AND TABLE_SCHEMA="YOUR DATABASE NAME";
方法2:
select * from information_schema.VIEWS WHERE TABLE_SCHEMA="YOUR DATABASE NAME";
show procedure status
将显示存储过程。
show create procedure MY_PROC
将向你展示一个过程的定义。和
help show
将显示show命令的所有可用选项。
选择:
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
我最喜欢呈现的程序列表的当前数据库:名称,参数列表,注释
SELECT specific_name AS name, param_list AS params, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'PROCEDURE';
为函数添加返回值:
SELECT specific_name AS name, param_list AS params, `returns`, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'FUNCTION';
推荐文章
- MySQL对重复键更新在一个查询中插入多行
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- MySQL:如何复制行,但改变几个字段?
- 不能删除或更新父行:外键约束失败
- Mysql错误1452:不能添加或更新子行:外键约束失败
- MySQL DISTINCT在GROUP_CONCAT()上
- 第一次设计数据库:我是否过度设计了?
- 如何使用xargs复制名称中有空格和引号的文件?
- MySQL选择一个列DISTINCT,与其他列相对应
- 错误1022 -不能写;表中重复的键
- 如何修改列和更改默认值?
- 如何在MySQL 8.0中授予root用户所有权限
- mysqld_safe UNIX套接字文件目录“/var/run/mysqld”不存在
- 配置系统初始化失败
- 快速简单的方法迁移SQLite3到MySQL?