systemadmin.es > DBA > Ver el código de un stored procedure en MySQL

Ver el código de un stored procedure en MySQL

En una base de datos MySQL podemos tener stored procedures como el siguiente:

mysql> delimiter //
mysql> create procedure sp_historico(IN tabla VARCHAR(50), in d date) begin insert into historico values (tabla, d); end//
Query OK, 0 rows affected (0.03 sec)

Vamos a ver cómo podemos ver el código una vez creados.

Si hacemos una búsqueda rápida en la documentación de MySQL nos podemos encontrar con SHOW PROCEDURE CODE:

mysql> show procedure code sp_historico;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Pero debemos leer la primera frase, que seguro que todos ignoramos al leer la documentación en diagonal:

This statement is a MySQL extension that is available only for servers that have been built with debugging support.

Por lo tanto, en realidad no nos vale, en su lugar debemos usar SHOW CREATE PROCEDURE:

mysql> show create procedure sp_historico\G
*************************** 1. row ***************************
           Procedure: sp_historico
            sql_mode:
    Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_historico`(IN tabla VARCHAR(50), in d date)
begin insert into historico values (tabla, d); end
character_set_client: latin1
collation_connection: latin1_swedish_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

O bien, mediante la base de datos information_schema, en la tabla routines:

mysql> select routine_definition from information_schema.routines where specific_name='sp_historico'\G
*************************** 1. row ***************************
routine_definition: begin insert into historico values (tabla, d); end
1 row in set (0.00 sec)

One comment to “Ver el código de un stored procedure en MySQL”

  1. Otra opción en usar algo como: SELECT body FROM mysql.proc;

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>