Mysql
 sql >> база данни >  >> RDS >> Mysql

2 начина за изброяване на всички съхранени процедури в MySQL

По-долу са две опции за връщане на пълен списък със съхранени процедури в MySQL.

SHOW PROCEDURE STATUS Команда

Най-бързият начин да изброите всички съхранени процедури е да използвате SHOW PROCEDURE STATUS команда.

Просто изпълнете следното, за да изброите всички съхранени процедури:

SHOW PROCEDURE STATUS;

Синтаксисът е така:

SHOW PROCEDURE STATUS
    [LIKE 'pattern' | WHERE expr]

Така че можете да използвате LIKE или WHERE клауза за стесняване на резултатите.

Пример:

SHOW PROCEDURE STATUS LIKE 'albums%';

Резултат:

+-------+------------------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| 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 Таблица

Друг начин да получите списък със съхранени процедури в MySQL е да потърсите information_schema.routines таблица.

Пример:

SELECT 
    routine_schema as "Database",
    routine_name
FROM 
    information_schema.routines
WHERE 
    routine_type = 'PROCEDURE'
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

Тази таблица също така съхранява информация за съхранените функции. В горния пример ги изключих, като използвах WHERE клауза за връщане само на съхранени процедури (т.е. обекти с routine_type на PROCEDURE ).

За да включим съхранени функции, можем да премахнем WHERE клауза:

SELECT 
    routine_schema as "Database",
    routine_name,
    routine_type
FROM 
    information_schema.routines
ORDER BY 
    routine_schema ASC, 
    routine_name ASC;

В този случай добавих и routine_type колона, за да можем да правим разлика между процедурите и функциите.

Можем също да изключим определени бази данни от резултата:

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;

Ето какво връща това в моята тестова среда:

+----------+------------------------+--------------+
| Database | ROUTINE_NAME           | ROUTINE_TYPE |
+----------+------------------------+--------------+
| Music    | spAlbumsByGenre        | PROCEDURE    |
| Music    | spAlbumsFromArtistId   | PROCEDURE    |
| Music    | spAlbumsFromArtistName | PROCEDURE    |
| Music    | spArtistFromId         | PROCEDURE    |
| PetHotel | spGetAllPets           | PROCEDURE    |
| PetHotel | spGetPetById           | PROCEDURE    |
+----------+------------------------+--------------+

Можем също да го ограничим до конкретна база данни:

SELECT 
    routine_schema as "Database",
    routine_name,
    routine_type
FROM 
    information_schema.routines
WHERE 
    routine_schema = 'music'
ORDER BY 
    routine_name ASC;

Резултат:

+----------+------------------------+--------------+
| Database | ROUTINE_NAME           | ROUTINE_TYPE |
+----------+------------------------+--------------+
| Music    | spAlbumsByGenre        | PROCEDURE    |
| Music    | spAlbumsFromArtistId   | PROCEDURE    |
| Music    | spAlbumsFromArtistName | PROCEDURE    |
| Music    | spArtistFromId         | PROCEDURE    |
+----------+------------------------+--------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. nodejs mysql Грешка:Връзката е изгубена Сървърът затвори връзката

  2. 5 най-добри онлайн курсове за изучаване на MySQL

  3. EXTRACT() Примери – MySQL

  4. MySQL връща само един ред

  5. SQL DELETE с JOIN друга таблица за условие WHERE