Di bawah ini adalah dua opsi untuk mengembalikan daftar lengkap prosedur tersimpan di MySQL.
The SHOW PROCEDURE STATUS
Perintah
Cara tercepat untuk membuat daftar semua prosedur tersimpan adalah dengan menggunakan SHOW PROCEDURE STATUS
perintah.
Cukup jalankan yang berikut ini untuk membuat daftar semua prosedur tersimpan:
SHOW PROCEDURE STATUS;
Sintaksnya seperti ini:
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
Jadi Anda dapat menggunakan LIKE
atau WHERE
klausa untuk mempersempit hasil.
Contoh:
SHOW PROCEDURE STATUS LIKE 'albums%';
Hasil:
+-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+ | 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 | +-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
information_schema.routines
Tabel
Cara lain untuk mendapatkan daftar prosedur tersimpan di MySQL adalah dengan menanyakan information_schema.routines
tabel.
Contoh:
SELECT
routine_schema as "Database",
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'PROCEDURE'
ORDER BY
routine_schema ASC,
routine_name ASC;
Tabel ini juga menyimpan informasi tentang fungsi yang disimpan. Dalam contoh di atas, saya mengecualikan mereka dengan menggunakan WHERE
klausa untuk mengembalikan hanya prosedur tersimpan (yaitu objek dengan routine_type
dari PROCEDURE
).
Untuk menyertakan fungsi yang disimpan, kita dapat menghapus WHERE
klausa:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
ORDER BY
routine_schema ASC,
routine_name ASC;
Dalam hal ini saya juga menambahkan routine_type
kolom sehingga kita dapat membedakan antara prosedur dan fungsi.
Kami juga dapat mengecualikan database tertentu dari hasil:
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;
Inilah yang dikembalikan di lingkungan pengujian saya:
+----------+------------------------+--------------+ | Database | ROUTINE_NAME | ROUTINE_TYPE | +----------+------------------------+--------------+ | Music | spAlbumsByGenre | PROCEDURE | | Music | spAlbumsFromArtistId | PROCEDURE | | Music | spAlbumsFromArtistName | PROCEDURE | | Music | spArtistFromId | PROCEDURE | | PetHotel | spGetAllPets | PROCEDURE | | PetHotel | spGetPetById | PROCEDURE | +----------+------------------------+--------------+
Kami juga dapat mempersempitnya ke database tertentu:
SELECT
routine_schema as "Database",
routine_name,
routine_type
FROM
information_schema.routines
WHERE
routine_schema = 'music'
ORDER BY
routine_name ASC;
Hasil:
+----------+------------------------+--------------+ | Database | ROUTINE_NAME | ROUTINE_TYPE | +----------+------------------------+--------------+ | Music | spAlbumsByGenre | PROCEDURE | | Music | spAlbumsFromArtistId | PROCEDURE | | Music | spAlbumsFromArtistName | PROCEDURE | | Music | spArtistFromId | PROCEDURE | +----------+------------------------+--------------+