如何在mysql命令行中看到存储过程或存储函数的列表,如show tables;或显示数据库;命令。
当前回答
显示所有存储过程:
SHOW PROCEDURE STATUS;
显示所有函数:
SHOW FUNCTION STATUS;
显示指定过程的定义:
SHOW CREATE PROCEDURE [PROC_NAME];
显示给定数据库的所有程序:
SHOW PROCEDURE STATUS WHERE Db = '[db_name]';
其他回答
如上所述,
show procedure status;
确实会显示过程列表,但会显示服务器范围内的所有过程。
如果你想只看到一个数据库中的那些,试试这个:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
列出所有数据库的用户过程和功能:
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
ORDER BY
`database`
,`type`
,`name`
;
列出正在使用的数据库的用户程序和功能:
SELECT
`ROUTINE_SCHEMA` AS `database`
,`ROUTINE_TYPE` AS `type`
,`SPECIFIC_NAME` AS `name`
,`DTD_IDENTIFIER` AS `data_type`
FROM
`INFORMATION_SCHEMA`.`ROUTINES`
WHERE
`definer` LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
AND
`ROUTINE_SCHEMA` = DATABASE()
ORDER BY
`type`
,`name`
;
显示所有存储过程:
SHOW PROCEDURE STATUS;
显示所有函数:
SHOW FUNCTION STATUS;
显示指定过程的定义:
SHOW CREATE PROCEDURE [PROC_NAME];
显示给定数据库的所有程序:
SHOW PROCEDURE STATUS WHERE Db = '[db_name]';
我最喜欢呈现的程序列表的当前数据库:名称,参数列表,注释
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';
用这个:
SHOW PROCEDURE STATUS;