514 Stimmen

Liste der gespeicherten Prozeduren/Funktionen Mysql Command Line

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

33voto

macio.Jun Punkte 9241

Alternativ:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES

25voto

John Haugeland Punkte 8443

Ich bevorzuge etwas, das:

  1. Listet sowohl Funktionen als auch Verfahren auf,
  2. Lassen Sie mich wissen, welche das sind,
  3. Gibt die Namen und Typen der Verfahren an und sonst nichts ,
  4. Filtert die Ergebnisse nach der aktuellen Datenbank, nicht der aktuelle Definierer
  5. Sortiert das Ergebnis

Wenn ich andere Antworten in diesem Thread zusammenfasse, komme ich zu folgendem Ergebnis

select 
  name, type 
from 
  mysql.proc 
where 
  db = database() 
order by 
  type, name;

... was zu Ergebnissen führt, die wie folgt aussehen:

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)

18voto

Optimizer Punkte 609

Zeigt alle gespeicherten Prozeduren an:

SHOW PROCEDURE STATUS;

Zeigt alle Funktionen an:

SHOW FUNCTION STATUS;

Zeigt die Definition der angegebenen Prozedur an:

SHOW CREATE PROCEDURE [PROC_NAME];

Zeigt Ihnen alle Prozeduren der angegebenen Datenbank:

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

15voto

Dies verwenden:

SHOW PROCEDURE STATUS;

9voto

trapper_hag Punkte 711

Eine Abwandlung des Beitrags von Praveenkumar_V:

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

und das nur, weil ich nach der Hausarbeit 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';

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X