Como obter Informações sobre as rotinas em MySQL

Vamos ver como podemos ver todas as rotinas dentro do nosso banco de dados MySQL. Em funções do MySQL, os processos podem ser chamadas rotinas ordenadas. Para consultar as informações você pode usar o comando SHOW:

mysql> SHOW PROCEDURE STATUSG
*************************** 1. row ***************************
           Db: BXXX_234
         Name: c333
         Type: PROCEDURE
      Definer: root@localhost
     Modified: 2010-03-18 13:04:34
      Created: 2010-03-18 13:04:34
Security_type: DEFINER
      Comment:
*************************** 2. row ***************************
           Db: BXXX_234
         Name: m222
         Type: PROCEDURE
      Definer: root@localhost
     Modified: 2010-03-18 13:04:34
      Created: 2010-03-18 13:04:34
Security_type: DEFINER
      Comment:
*************************** 3. row ***************************
           Db: BXXX_234
         Name: P321
         Type: PROCEDURE
      Definer: root@localhost
     Modified: 2010-03-18 13:04:34
      Created: 2010-03-18 13:04:34
Security_type: DEFINER
      Comment:
*************************** 4. row ***************************
           Db: BXXX_234
         Name: produtos123
         Type: PROCEDURE
      Definer: root@localhost
     Modified: 2010-03-18 13:04:34
      Created: 2010-03-18 13:04:34
Security_type: DEFINER
      Comment:
Ou você pode usar a sintaxe abaixo para obter a definição de uma única rotina:
mysql> SHOW PROCEDURE STATUS like 'remove%'G
*************************** 1. row ***************************
           Db: BASE_XXX
         Name: remove_garbage
         Type: PROCEDURE
      Definer: root@localhost
     Modified: 2010-03-18 13:04:34
      Created: 2010-03-18 13:04:34
Security_type: DEFINER
      Comment:
1 row in set (0.06 sec)
Outra maneira de você para listar as rotinas é para consultar a tabela de INFORMATION_SCHEMA.ROUTINES   Você vai obter mais informação sobre o que você quer em rotina, como seu tipo e sua definição.
 mysql> select * from INFORMATION_SCHEMA.ROUTINESG
*************************** 1. row ***************************
     SPECIFIC_NAME: cria_123
   ROUTINE_CATALOG: NULL
    ROUTINE_SCHEMA: BASE_xxx
      ROUTINE_NAME: c123
      ROUTINE_TYPE: PROCEDURE
    DTD_IDENTIFIER: NULL
      ROUTINE_BODY: SQL
ROUTINE_DEFINITION: BEGIN
    IF (EXISTS(SELECT 1 FROM pedidos WHERE id=pedidoid AND codigo_pedido IS NULL LIMIT 1)) THEN
        SET autocommit=0;
        IF(EXISTS(SELECT 1 FROM csras WHERE pedidos_id=pedidoid) OR
            EXISTS(SELECT 1 FROM csras WHERE id=pedidoid)) THEN
            DELETE FROM csras where id=pedidoid;
            DELETE FROM csras WHERE pedidos_id=pedidoid;
        END IF;
        INSERT INTO csras SELECT * FROM pedidos_itens WHERE pedidos_id=pedidoid;
        INSERT INTO csras SELECT * FROM pedidos WHERE id=pedidoid;
        COMMIT;
        if (EXISTS(SELECT 1 FROM csras WHERE id=pedidoid LIMIT 1)) THEN
            DELETE FROM pedidos_historico WHERE pedidos_id=pedidoid;
            DELETE FROM pedidos_itens WHERE pedidos_id=pedidoid;
            DELETE FROM modulos_pagamento_dados WHERE pedidos_id=pedidoid;
            DELETE FROM pedidos WHERE id=pedidoid;
            COMMIT;
        END IF;
    END IF;
    END
     EXTERNAL_NAME: NULL
 EXTERNAL_LANGUAGE: NULL
   PARAMETER_STYLE: SQL
  IS_DETERMINISTIC: YES
   SQL_DATA_ACCESS: CONTAINS SQL
          SQL_PATH: NULL
     SECURITY_TYPE: DEFINER
           CREATED: 2010-03-18 13:04:34
      LAST_ALTERED: 2010-03-18 13:04:34
          SQL_MODE: NO_AUTO_VALUE_ON_ZERO
   ROUTINE_COMMENT: