如何在mysql命令行中看到存储过程或存储函数的列表,如show tables;或显示数据库;命令。


当前回答

选择:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES

其他回答

我的偏好是:

列出了函数和过程, 让我知道哪个是哪个, 只给出过程的名称和类型, 根据当前数据库而不是当前定义器筛选结果 对结果进行排序

把这篇文章中的其他答案拼接在一起,我最终得到了

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)
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
show procedure status

将显示存储过程。

show create procedure MY_PROC

将向你展示一个过程的定义。和

help show

将显示show命令的所有可用选项。

只展示你的:

SELECT
  db, type, specific_name, param_list, returns
FROM
  mysql.proc
WHERE
  definer LIKE
  CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));

用于视图过程的名称

select name from mysql.proc 

下面的代码用于列出所有过程,下面的代码给出与显示过程状态相同的结果

select * from mysql.proc