Wie kann ich die Liste der gespeicherten Prozeduren oder gespeicherten Funktionen in der mysql-Befehlszeile sehen, wie show tables;
o show databases;
Befehle.
Antworten
Zu viele Anzeigen?Wenn Sie die Speicherprozedur für die aktuell ausgewählte Datenbank auflisten möchten,
SHOW PROCEDURE STATUS WHERE Db = DATABASE();
wird eine Liste von Routinen basierend auf der aktuell ausgewählten Datenbank angezeigt
AKTUALISIERT um die Funktionen in Ihrer Datenbank aufzulisten
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="FUNCTION";
um die Routinen/Speicherverfahren in Ihrer Datenbank aufzulisten,
select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="PROCEDURE";
um Tabellen in Ihrer Datenbank aufzulisten,
select * from information_schema.TABLES WHERE TABLE_TYPE="BASE TABLE" AND TABLE_SCHEMA="YOUR DATABASE NAME";
um die Ansichten in Ihrer Datenbank aufzulisten,
Methode 1:
select * from information_schema.TABLES WHERE TABLE_TYPE="VIEW" AND TABLE_SCHEMA="YOUR DATABASE NAME";
Methode 2:
select * from information_schema.VIEWS WHERE TABLE_SCHEMA="YOUR DATABASE NAME";
Seit MySQL 8.0 ist die mysql.procs
Tabelle wurde entfernt. Wenn Sie einen der Befehle aus den Antworten hier ausführen, die diese Tabelle verwenden, erhalten Sie eine Fehlermeldung, die (ganz logisch) lautet:
Table 'mysql.proc' doesn't exist
Um stattdessen eine Liste mit den Namen von Prozeduren/Funktionen abzurufen, verwenden Sie:
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='<your_db_name>';
In meinem Fall habe ich sie so bearbeitet, dass nur die Prozeduren und nicht die Funktionen angezeigt werden:
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='<your_db_name>' AND routine_type='PROCEDURE';
Meine Lieblingsdarstellung der Prozedurenliste der aktuellen Datenbank: Name, Parameterliste, Kommentar
SELECT specific_name AS name, param_list AS params, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'PROCEDURE';
Rückgaben für Funktionen hinzufügen:
SELECT specific_name AS name, param_list AS params, `returns`, `comment`
FROM mysql.proc
WHERE db = DATABASE()
AND type = 'FUNCTION';