如何在mysql命令行中看到存储过程或存储函数的列表,如show tables;或显示数据库;命令。
当前回答
我的偏好是:
列出了函数和过程, 让我知道哪个是哪个, 只给出过程的名称和类型, 根据当前数据库而不是当前定义器筛选结果 对结果进行排序
把这篇文章中的其他答案拼接在一起,我最终得到了
select
name, type
from
mysql.proc
where
db = database()
order by
type, name;
... 最终你会得到这样的结果:
mysql> select name, type from mysql.proc where db = database() order by type, name;
+------------------------------+-----------+
| name | type |
+------------------------------+-----------+
| get_oldest_to_scan | FUNCTION |
| get_language_prevalence | PROCEDURE |
| get_top_repos_by_user | PROCEDURE |
| get_user_language_prevalence | PROCEDURE |
+------------------------------+-----------+
4 rows in set (0.30 sec)
其他回答
如上所述,
show procedure status;
确实会显示过程列表,但会显示服务器范围内的所有过程。
如果你想只看到一个数据库中的那些,试试这个:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
用这个:
SHOW PROCEDURE STATUS;
如果要列出当前所选数据库的存储过程,请
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 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';
推荐文章
- Linux相当于Mac OS X的“open”命令
- 如何在Mac上的命令行安装JQ ?
- MySQL更新内部连接表查询
- 在命令行中使用Firefox截取完整页面的截图
- 在pip install -U中“-U”选项代表什么
- 根据查询结果设置用户变量
- 如何将参数转发到bash脚本中的其他命令?
- 不能删除外键约束中需要的索引
- MySQL现在()+1天
- MySQL索引的最佳实践是什么?
- 如何在Mac OS安装时停止MySQL ?
- 外键约束:何时使用ON UPDATE和ON DELETE
- 在MySQL中使用INDEX和KEY有什么区别?
- 连接查询vs多个查询
- MySQL:在同一个MySQL实例上克隆MySQL数据库