Nachfolgend finden Sie zwei Optionen zum Zurückgeben einer vollständigen Liste gespeicherter Prozeduren in MySQL.
Der SHOW PROCEDURE STATUS
Befehl
Der schnellste Weg, alle gespeicherten Prozeduren aufzulisten, ist die Verwendung von SHOW PROCEDURE STATUS
Befehl.
Führen Sie einfach Folgendes aus, um alle gespeicherten Prozeduren aufzulisten:
SHOW PROCEDURE STATUS;
Die Syntax lautet wie folgt:
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
Sie können also ein LIKE
verwenden oder WHERE
-Klausel, um die Ergebnisse einzugrenzen.
Beispiel:
SHOW PROCEDURE STATUS LIKE 'albums%';
Ergebnis:
+-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | Db | Name | Type | Definer | Modified | Created | Security_type | Comment | character_set_client | collation_connection | Database Collation | +-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | Music | spAlbumsByGenre | PROCEDURE | [email protected] | 2021-11-13 13:09:26 | 2021-11-13 13:09:26 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_0900_ai_ci | | Music | spAlbumsFromArtistId | PROCEDURE | [email protected] | 2021-11-13 13:03:25 | 2021-11-13 13:03:25 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_0900_ai_ci | | Music | spAlbumsFromArtistName | PROCEDURE | [email protected] | 2021-11-13 13:03:48 | 2021-11-13 13:03:48 | DEFINER | | utf8mb4 | utf8mb4_0900_ai_ci | utf8mb4_0900_ai_ci | +-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
Die information_schema.routines
Tabelle
Eine andere Möglichkeit, eine Liste gespeicherter Prozeduren in MySQL zu erhalten, besteht darin, die information_schema.routines
abzufragen Tabelle.
Beispiel:
SELECT
routine_schema as "Database",
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE'
ORDER BY
routine_schema ASC,
routine_name ASC;
Diese Tabelle speichert auch Informationen über gespeicherte Funktionen. Im obigen Beispiel habe ich diese ausgeschlossen, indem ich ein WHERE
verwendet habe -Klausel, um nur gespeicherte Prozeduren zurückzugeben (d. h. Objekte mit einem routine_type
von PROCEDURE
).
Um gespeicherte Funktionen einzuschließen, können wir das WHERE
entfernen Klausel:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
ORDER BY
routine_schema ASC,
routine_name ASC;
In diesem Fall habe ich auch den routine_type
hinzugefügt Spalte, damit wir zwischen den Prozeduren und Funktionen unterscheiden können.
Wir können auch bestimmte Datenbanken aus dem Ergebnis ausschließen:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
WHERE
routine_schema NOT IN ('sys', 'information_schema', 'mysql', 'performance_schema')
ORDER BY
routine_schema ASC,
routine_name ASC;
Folgendes wird in meiner Testumgebung zurückgegeben:
+----------+------------------------+--------------+ | Database | ROUTINE_NAME | ROUTINE_TYPE | +----------+------------------------+--------------+ | Music | spAlbumsByGenre | PROCEDURE | | Music | spAlbumsFromArtistId | PROCEDURE | | Music | spAlbumsFromArtistName | PROCEDURE | | Music | spArtistFromId | PROCEDURE | | PetHotel | spGetAllPets | PROCEDURE | | PetHotel | spGetPetById | PROCEDURE | +----------+------------------------+--------------+
Wir können es auch auf eine bestimmte Datenbank eingrenzen:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
WHERE
routine_schema = 'music'
ORDER BY
routine_name ASC;
Ergebnis:
+----------+------------------------+--------------+ | Database | ROUTINE_NAME | ROUTINE_TYPE | +----------+------------------------+--------------+ | Music | spAlbumsByGenre | PROCEDURE | | Music | spAlbumsFromArtistId | PROCEDURE | | Music | spAlbumsFromArtistName | PROCEDURE | | Music | spArtistFromId | PROCEDURE | +----------+------------------------+--------------+