Este artículo explica cómo listar y ver el código fuente de procedimientos (stored procedures) y funciones (stored functions) en MySQL, desde línea de comandos (cliente mysql).



Para listar stored procedures y stored functions en MySQL se deben utilizar las consultas:

show procedure status;
show function status;

Estas consultas listan los procedimientos y funciones respectivamente. Para cada procedimiento/función se indica claramente a qué base de datos pertenece, el tipo (procedimiento o función), el usuario que lo creó, las fechas de modificación/creación, conjunto de caracteres y collation, y más.

Por ejemplo:

mysql> show function status;
+-----+----------+----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db  | Name     | Type     | Definer | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+-----+----------+----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| db5 | fsaraza  | FUNCTION | root@%  | 2016-10-11 07:53:16 | 2016-10-11 07:53:16 | DEFINER       |         | utf8                 | utf8_general_ci      | latin1_swedish_ci  |
+-----+----------+----------+---------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0,05 sec)

Se observa que en esta instancia de MySQL existe una única función llamada "fsaraza", perteneciente a la base de datos "db5".

Estos datos provienen de la tabla mysql.proc. Por lo que es posible obtener resultados similares seleccionando desde la misma:

select * from mysql.proc

Esta consulta, en cambio, lista tanto procedimientos como funciones, incluyendo sus códigos fuente SQL. Se trata de una consulta con una salida mucho más grande.

Si se desea acceder al código fuente de un procedimiento o función, primero se debe seleccionar la base de datos a la que pertenece, y luego utilizar la consulta show create.

Por ejemplo, para listar el código SQL del procedimiento "psaraza" perteneciente a la base de datos "db5", ejecutar:

use db5
show create procedure psaraza

Por ejemplo, para listar el código SQL de la función "fsaraza" perteneciente a la base de datos "db5", ejecutar:

use db5
show create function fsaraza

Referencias

MySQL 5.7 Reference Manual / ... / CREATE PROCEDURE and CREATE FUNCTION Syntax


Tal vez pueda interesarte


Compartí este artículo