Hieronder staan twee opties voor het retourneren van een volledige lijst met opgeslagen procedures in MySQL.
De SHOW PROCEDURE STATUS
Commando
De snelste manier om alle opgeslagen procedures op een rij te zetten, is door de SHOW PROCEDURE STATUS
te gebruiken. commando.
Voer gewoon het volgende uit om alle opgeslagen procedures op te sommen:
SHOW PROCEDURE STATUS;
De syntaxis gaat als volgt:
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
U kunt dus een LIKE
. gebruiken of WHERE
clausule om de resultaten te verfijnen.
Voorbeeld:
SHOW PROCEDURE STATUS LIKE 'albums%';
Resultaat:
+-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | 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 | +-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
De information_schema.routines
Tabel
Een andere manier om een lijst met opgeslagen procedures in MySQL te krijgen, is door de information_schema.routines
op te vragen. tafel.
Voorbeeld:
SELECT
routine_schema as "Database",
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE'
ORDER BY
routine_schema ASC,
routine_name ASC;
Deze tabel bevat ook informatie over opgeslagen functies. In het bovenstaande voorbeeld heb ik die uitgesloten door een WHERE
. te gebruiken clausule om alleen opgeslagen procedures te retourneren (d.w.z. objecten met een routine_type
van PROCEDURE
).
Om opgeslagen functies op te nemen, kunnen we de WHERE
. verwijderen clausule:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
ORDER BY
routine_schema ASC,
routine_name ASC;
In dit geval heb ik ook de routine_type
. toegevoegd kolom zodat we onderscheid kunnen maken tussen de procedures en functies.
We kunnen ook bepaalde databases uitsluiten van het resultaat:
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;
Dit is wat dit oplevert in mijn testomgeving:
+----------+------------------------+--------------+ | Database | ROUTINE_NAME | ROUTINE_TYPE | +----------+------------------------+--------------+ | Music | spAlbumsByGenre | PROCEDURE | | Music | spAlbumsFromArtistId | PROCEDURE | | Music | spAlbumsFromArtistName | PROCEDURE | | Music | spArtistFromId | PROCEDURE | | PetHotel | spGetAllPets | PROCEDURE | | PetHotel | spGetPetById | PROCEDURE | +----------+------------------------+--------------+
We kunnen het ook beperken tot een specifieke database:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
WHERE
routine_schema = 'music'
ORDER BY
routine_name ASC;
Resultaat:
+----------+------------------------+--------------+ | Database | ROUTINE_NAME | ROUTINE_TYPE | +----------+------------------------+--------------+ | Music | spAlbumsByGenre | PROCEDURE | | Music | spAlbumsFromArtistId | PROCEDURE | | Music | spAlbumsFromArtistName | PROCEDURE | | Music | spArtistFromId | PROCEDURE | +----------+------------------------+--------------+