15 ответов:
show procedure statusпокажет вам хранимые процедуры.
show create procedure MY_PROCпокажет вам определение процедуры. И
help showпокажет вам все доступные варианты .
для процедуры просмотра в имени wise
select name from mysql.procниже код, используемый для перечисления всех процедур и ниже код дает тот же результат, что и показать статус процедуры
select * from mysql.proc
Как уже упоминалось выше,
show procedure status;действительно покажет список процедур, но показывает все из них, по всему серверу.
Если вы хотите увидеть только в одной базе данных, попробуйте это:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
Я предпочитаю то, что:
- список функций и процедур,
- Дайте мне знать, какие из них,
- дает имена и типы процедур и больше ничего,
- фильтрует результаты по текущей базе данных,не тока определитель
- сортирует результат
сшивание из других ответов в этой теме, я в конечном итоге с
select name, type from mysql.proc where db = database() order by type, name;... что в конечном итоге вы с результатами, которые выглядят так:
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)
чтобы показать только ваш:
SELECT db, type, specific_name, param_list, returns FROM mysql.proc WHERE definer LIKE CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));
вариация на тему поста Praveenkumar_V:
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE'; SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'FUNCTION';..и это потому, что мне нужно было сэкономить время после некоторой уборки:
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';
Если вы хотите перечислить процедуру хранения для текущей выбранной базы данных,
SHOW PROCEDURE STATUS WHERE Db = DATABASE();это будет список подпрограмм на основе текущей выбранной базы данных
SHOW PROCEDURE STATUS;показывает все хранимые процедуры.
SHOW FUNCTION STATUS;показывает все функции.
SHOW CREATE PROCEDURE [PROC_NAME];покажет определение указанной процедуры.
SHOW PROCEDURE STATUS WHERE Db = '[db_name]';покажет вам все процедуры данной базы данных.
использовать следующий запрос для всех процедур:
select * from sysobjects where type='p' order by crdate desc
Comments