¿Cómo puedo ver la lista de los procedimientos almacenados o funciones almacenadas en la línea de comandos mysql como show tables;
o show databases;
comandos.Lista de procedimientos almacenados/funciones Línea de comandos de Mysql
Respuesta
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
.
ayuda a mostrar no funciona. – Codler
Como señaló Codler, la demostración de ayuda no funciona ya que la ayuda es una instrucción de línea de comandos de mysql. Para obtener más información sobre el comando SHOW, vaya directamente a la página de documentación de MySQL en: http://dev.mysql.com/doc/refman/5.1/en/show.html – IvanD
Bueno, no estoy seguro de por qué dice eso, help show funciona bien para mí usando MySQL 5.0.95 en centos 6.3 – h4unt3r
uso esto:
SHOW PROCEDURE STATUS;
Como se mencionó anteriormente,
show procedure status;
de hecho va a mostrar una lista de procedimientos, pero muestra todo de ellos, a nivel de servidor.
Si desea ver sólo los que están en una sola base de datos, intente esto:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
¡esto funciona bien para mí ...! –
Del mismo modo, MOSTRAR ESTADO DE FUNCIÓN DONDE Db = 'databasename'; te da las funciones. –
Una forma más específica:
SHOW PROCEDURE STATUS
WHERE Db = DATABASE() AND Type = 'PROCEDURE'
funcionará sin usar AND Type = 'PROCEDURE' también, – normalUser
Para el procedimiento vista en nombre sabia
select name from mysql.proc
debajo del código usado para enumerar todo el procedimiento y el siguiente código es dar el mismo resultado que mostrar el estado del procedimiento
select * from mysql.proc
+1 ¡para mostrar el único nombre! –
esta es una presentación mucho más limpia que las otras, especialmente si se encuentra en una terminal más pequeña. Gracias. – user1527227
Para mostrar solamente los suyos:
SELECT
db, type, specific_name, param_list, returns
FROM
mysql.proc
WHERE
definer LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));
¿Por qué editar en mayúsculas? ¿Es una convención? –
Es una convención común poner palabras clave SQL en mayúsculas, al tiempo que pone nombres de columnas, tablas, etc. en minúsculas. – Sagar
Alternativa:
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
show procedure status;
usando este comando se puede ver los todos los procedimientos en bases de datos
una variación en la Praveenkumar_V publicación:
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 para ahorrar tiempo después de algún servicio de limpieza:
SELECT CONCAT(
"GRANT EXECUTE ON PROCEDURE `"
,`name`
,"` TO [email protected]'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'PROCEDURE';
SELECT CONCAT(
"GRANT EXECUTE ON FUNCTION `"
,`name`
,"` TO [email protected]'%'; -- "
,`comment`
)
FROM mysql.proc
WHERE db = 'dbname'
AND `type` = 'FUNCTION';
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
utilizar la siguiente consulta para todos los procedimientos:
select * from sysobjects
where type='p'
order by crdate desc
Mi preferencia es por algo que:
- Lista de funciones y procedimientos,
- Permite saber cuáles son cuáles,
- Da nombres de los procedimientos y de los tipos y nada más,
- Resultados de la base de datos actual, no el definidor actual
- Clasifica el resultado
uniendo de otros las respuestas en este hilo, termino con
select
name, type
from
mysql.proc
where
db = database()
order by
type, name;
... que lo termina con resultados que parecen l ike esto:
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)
¡Respuesta perfecta, gracias! –
Si desea enumerar Procedimiento tienda de base de datos seleccionada actual,
SHOW PROCEDURE STATUS WHERE Db = DATABASE();
aparecerá una lista de rutinas basadas en la base de datos actual seleccionado
SHOW PROCEDURE STATUS;
muestra todas las procedimientos almacenados.
SHOW FUNCTION STATUS;
muestra todas las funciones.
SHOW CREATE PROCEDURE [PROC_NAME];
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.
- 1. MySQL la línea de comandos y buscapersonas
- 2. Herramienta de línea de comandos de carga masiva MySql
- 3. Copia de seguridad y restauración de MySQL desde la línea de comandos
- 4. La línea de comandos de MySQL no se abrirá?
- 5. MySQL cliente de línea de comandos para Windows
- 6. Escapar guiones con la herramienta de línea de comandos mysql
- 7. Permisos de procedimientos almacenados de MySQL
- 8. Línea de comandos Mac - ¿Lista de puertos serie disponibles?
- 9. Lista de procedimientos almacenados de la tabla
- 10. Ejecutar MySQL procedimiento almacenado utilizando la línea de comandos
- 11. importación DB MySQL con XAMPP en la línea de comandos
- 12. MySQL desde la línea de comandos: ¿puedo usar prácticamente LOCKs?
- 13. emular unix 'cortar' usando comandos de línea de comandos/línea de comando de Windows estándar
- 14. [MySQL]: Procedimientos almacenados y sentencias de selección
- 15. ¿Cómo borro la pantalla mysql, abierta a través del cliente de línea de comandos de MySQL?
- 16. Cómo generar secuencias de comandos SQL desde MySQL Workbench utilizando la línea de comandos?
- 17. Línea de comandos PHP mysql_connect() Error
- 18. MySQL: Vistas vs Procedimientos almacenados
- 19. ¿Crear usuarios de mysql a través de la línea de comandos de Linux?
- 20. Javascript para utilidades de línea de comandos
- 21. Procedimientos almacenados de MySql: ¿cómo seleccionar desde la tabla de procedimientos?
- 22. Ejecución de comandos de línea de comando dentro de la secuencia de comandos de Ruby
- 23. Lista de fragmentos de código funcionales para programadores de procedimientos?
- 24. Recuperando una lista filtrada de procedimientos almacenados usando t-sql
- 25. comandos de cadena en la línea de comandos PowerShell
- 26. Análisis de instrucción de línea de comandos
- 27. Credenciales de línea de comandos de JConsole
- 28. ¿Cómo prevenir la inyección de SQL en la interfaz shell de línea de comandos de MySQL?
- 29. ¿Cómo ajustar la configuración de visualización de la línea de comandos de mysql?
- 30. ¿Cómo veo los tiempos de consulta de alta precisión en la línea de comandos de mysql?
¿Hay alguna manera de encontrar el nombre del procedimiento almacenado actual? Creo que es 'object_name (@@ procid)' en SSMS algo como esto en MySql? – xameeramir
Si el usuario tiene el privilegio de 'EJECUTAR', o de lo contrario, esto mostrará la lista vacía. – mjb