Comment puis-je voir la liste des procédures stockées ou des fonctions stockées dans la ligne de commande mysql, par exemple show tables;
o show databases;
des commandes.
Réponses
Trop de publicités?
macio.Jun
Points
1857
John Haugeland
Points
858
Ma préférence va à quelque chose qui :
- Répertorie à la fois les fonctions et les procédures,
- Fais-moi savoir lesquels sont lesquels,
- Donne le nom et le type des procédures et rien d'autre ,
- Filtre les résultats en fonction de la base de données actuelle, pas le définisseur actuel
- Trie le résultat
En assemblant les autres réponses de ce fil, j'obtiens
select
name, type
from
mysql.proc
where
db = database()
order by
type, name;
... ce qui vous donne des résultats qui ressemblent à ceci :
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)
Optimizer
Points
155
Montre toutes les procédures stockées :
SHOW PROCEDURE STATUS;
Affiche toutes les fonctions :
SHOW FUNCTION STATUS;
Affiche la définition de la procédure spécifiée :
SHOW CREATE PROCEDURE [PROC_NAME];
Vous montre toutes les procédures de la base de données donnée :
SHOW PROCEDURE STATUS WHERE Db = '[db_name]';
Utilisateur non enregistré
Points
0
trapper_hag
Points
33
Une variation sur le post 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';
et ce parce que j'avais besoin de gagner du temps après avoir fait un peu de ménage :
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';