Liste der gespeicherten Prozeduren / Funktionen Mysql Command Line


Answers

show procedure status

zeigt Ihnen die gespeicherten Prozeduren.

show create procedure MY_PROC

zeigt Ihnen die Definition eines Verfahrens. Und

help show

zeigt Ihnen alle verfügbaren Optionen für den Befehl show .

Question

Wie kann ich die Liste der gespeicherten Prozeduren oder gespeicherten Funktionen in der mysql-Befehlszeile wie show tables; oder show databases; Befehle.




Alternative:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES



Ein spezifischerer Weg:

SHOW PROCEDURE STATUS 
WHERE Db = DATABASE() AND Type = 'PROCEDURE'



Eine Variation von Praveenkumar_V's Beitrag:

SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE';
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'FUNCTION';

..und das, weil ich nach etwas Hauswirtschaft Zeit sparen musste:

SELECT CONCAT(
     "GRANT EXECUTE ON PROCEDURE `"
    ,`name`
    ,"` TO username@'%'; -- "
    ,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'PROCEDURE';

SELECT CONCAT(
     "GRANT EXECUTE ON FUNCTION `"
    ,`name`
    ,"` TO username@'%'; -- "
    ,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'FUNCTION';



benutze das:

SHOW PROCEDURE STATUS;



SHOW PROCEDURE STATUS;

Zeigt alle gespeicherten Prozeduren an.

SHOW FUNCTION STATUS;

Zeigt alle Funktionen an.

SHOW CREATE PROCEDURE [PROC_NAME];

Zeigt die Definition der angegebenen Prozedur an.

SHOW PROCEDURE STATUS WHERE Db = '[db_name]';

Zeigt Ihnen alle Prozeduren der angegebenen Datenbank.




Wenn Sie die Store-Prozedur für die aktuelle ausgewählte Datenbank auflisten möchten,

SHOW PROCEDURE STATUS WHERE Db = DATABASE();

Es werden Routinen basierend auf der aktuell ausgewählten Datenbank aufgelistet