para - Lista de procedimientos almacenados/Funciones Mysql Comando Línea
ver estructura de un procedimiento almacenado en mysql (15)
Alternativa:
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
¿Cómo puedo ver la lista de los procedimientos almacenados o las funciones almacenadas en la línea de comandos de mysql como show tables;
o show databases;
comandos
Como se ha mencionado más arriba,
show procedure status;
De hecho, mostrará una lista de procedimientos, pero muestra todos ellos, en todo el servidor.
Si desea ver solo los que están en una sola base de datos, intente esto:
SHOW PROCEDURE STATUS WHERE Db = ''databasename'';
Mi preferencia es por algo que:
- Enumera tanto funciones como procedimientos,
- Me deja saber cuales son cuales
- Da los nombres y tipos de los procedimientos y nada más ,
- Filtra los resultados por la base de datos actual, no por el definidor actual
- Ordena el resultado
Al unir de otras respuestas en este hilo, termino con
select
name, type
from
mysql.proc
where
db = database()
order by
type, name;
... lo que termina con resultados que se ven así:
mysql> select name, type from mysql.proc where db = database() order by type, name;
+------------------------------+-----------+
| name | type |
+------------------------------+-----------+
| get_oldest_to_scan | FUNCTION |
| get_language_prevalence | PROCEDURE |
| get_top_repos_by_user | PROCEDURE |
| get_user_language_prevalence | PROCEDURE |
+------------------------------+-----------+
4 rows in set (0.30 sec)
Para mostrar solo el tuyo:
SELECT
db, type, specific_name, param_list, returns
FROM
mysql.proc
WHERE
definer LIKE
CONCAT(''%'', CONCAT((SUBSTRING_INDEX((SELECT user()), ''@'', 1)), ''%''));
Para ver procedimiento en nombre sabio
select name from mysql.proc
El código a continuación se usa para enumerar todos los procedimientos y el código a continuación es el mismo resultado que el estado del procedimiento de mostrar
select * from mysql.proc
Si desea listar el procedimiento de almacenamiento para la base de datos seleccionada actual,
SHOW PROCEDURE STATUS WHERE Db = DATABASE();
listará rutinas basadas en la base de datos seleccionada actual
Una forma más específica:
SHOW PROCEDURE STATUS
WHERE Db = DATABASE() AND Type = ''PROCEDURE''
Una variación en la publicación de Praveenkumar_V:
SELECT `name` FROM mysql.proc WHERE db = ''dbname'' AND `type` = ''PROCEDURE'';
SELECT `name` FROM mysql.proc WHERE db = ''dbname'' AND `type` = ''FUNCTION'';
..y esto porque necesitaba ahorrar tiempo después de un poco de limpieza:
SELECT CONCAT(
"GRANT EXECUTE ON PROCEDURE `"
,`name`
,"` TO username@''%''; -- "
,`comment`
)
FROM mysql.proc
WHERE db = ''dbname''
AND `type` = ''PROCEDURE'';
SELECT CONCAT(
"GRANT EXECUTE ON FUNCTION `"
,`name`
,"` TO username@''%''; -- "
,`comment`
)
FROM mysql.proc
WHERE db = ''dbname''
AND `type` = ''FUNCTION'';
Utilice la siguiente consulta para todos los procedimientos:
select * from sysobjects
where type=''p''
order by crdate desc
utilizar esta:
SHOW PROCEDURE STATUS;
show procedure status;
Usando este comando puedes ver todos los procedimientos en bases de datos.
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema=''database_name''
SHOW PROCEDURE STATUS;
Muestra todos los procedimientos almacenados.
SHOW FUNCTION STATUS;
Muestra todas las funciones.
SHOW CREATE PROCEDURE [PROC_NAME];
Se mostrará la definición del procedimiento especificado.
SHOW PROCEDURE STATUS WHERE Db = ''[db_name]'';
Le mostrará todos los procedimientos de la base de datos dada.
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
show procedure status
le mostrará los procedimientos almacenados.
show create procedure MY_PROC
le mostrará la definición de un procedimiento. Y
help show
le mostrará todas las opciones disponibles para el comando show
.