para - Ver definición de procedimiento/función almacenada en MySQL
procedimientos almacenados mysql pdf (8)
Perfecto, pruébalo
SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = ''yourdb'' AND ROUTINE_TYPE = ''PROCEDURE'' AND ROUTINE_NAME = "procedurename";
¿Cuál es el comando de MySQL para ver la definición de un procedimiento o función almacenada, similar a sp_helptext
en Microsoft SQL Server?
Sé que SHOW PROCEDURE STATUS
mostrará la lista de los procedimientos disponibles. Necesito ver la definición de un solo procedimiento.
Puede usar table proc en la base de datos mysql :
mysql> SELECT body FROM mysql.proc
WHERE db = ''yourdb'' AND name = ''procedurename'' ;
Tenga en cuenta que debe tener una concesión para seleccionar a mysql.proc :
mysql> GRANT SELECT ON mysql.proc TO ''youruser''@''yourhost'' IDENTIFIED BY ''yourpass'' ;
Puedes usar esto:
SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = ''yourdb'' AND ROUTINE_TYPE = ''PROCEDURE'' AND ROUTINE_NAME = "procedurename";
Si desea conocer la lista de procedimientos, puede ejecutar el siguiente comando:
show procedure status;
Le dará la lista de procedimientos y sus definidores Luego puede ejecutar el show create procedure <procedurename>;
Una solución alternativa rápida y hacky si desea obtener una visión general de todos los produres que existen, o se encuentra con el problema de obtener solo el encabezado del procedimiento que se muestra por SHOW CREATE PROCEDURE:
mysqldump --user=<user> -p --no-data --routines <database>
También exportará las descripciones de la tabla, pero no los datos. Funciona bien para olfatear esquemas desconocidos u olvidados ...;)
algo como:
DELIMITER //
CREATE PROCEDURE alluser()
BEGIN
SELECT *
FROM users;
END //
DELIMITER ;
que:
SHOW CREATE PROCEDURE alluser
da resultado:
''alluser'', ''STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER'', ''CREATE DEFINER=`root`@`localhost` PROCEDURE `alluser`()
BEGIN
SELECT *
FROM users;
END''
SHOW CREATE PROCEDURE <name>
Devuelve el texto de un procedimiento almacenado previamente definido que se creó utilizando la instrucción CREATE PROCEDURE
. Intercambie PROCEDURE
por FUNCTION
para una función almacenada.
SHOW CREATE PROCEDURE proc_name;
devuelve la definición de proc_name