Список хранимых процедур / функций Командная строка Mysql

Как я могу просмотреть список хранимых процедур или хранимых функций в командной строке mysql, например show tables; или show databases; команды.

 SHOW PROCEDURE STATUS; SHOW FUNCTION STATUS; 
 show procedure status 

покажет вам хранимые процедуры.

 show create procedure MY_PROC 

покажет вам определение процедуры. А также

 help show 

покажет вам все доступные параметры команды show .

Процедура просмотра в названии

 select name from mysql.proc 

ниже код, используемый для enums всей процедуры и ниже кода, дает тот же результат, что и статус процедуры показа

 select * from mysql.proc 

Более конкретный способ:

 SHOW PROCEDURE STATUS WHERE Db = DATABASE() AND Type = 'PROCEDURE' 

Как уже упоминалось выше,

 show procedure status; 

На самом деле вы увидите список процедур, но покажет их все на сервере.

Если вы хотите увидеть только те, которые находятся в одной базе данных, попробуйте следующее:

 SHOW PROCEDURE STATUS WHERE Db = 'databasename'; 

Альтернатива:

 SELECT * FROM INFORMATION_SCHEMA.ROUTINES 

Я предпочитаю то, что:

  1. Перечисляет обе функции и процедуры,
  2. Позволяет мне знать, какие из них,
  3. Дает имена и типы процедур и ничего больше ,
  4. Фильтрует результаты по текущей базе данных, а не текущему определителю
  5. Сортирует результат

Объединившись с другими ответами в этой теме, я в конечном итоге

 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) 

использовать это:

 SHOW PROCEDURE STATUS; 

Чтобы показать только ваши:

 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'; 
 SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name' 

Если вы хотите перечислить процедуру хранения текущей выбранной базы данных,

 SHOW PROCEDURE STATUS WHERE Db = DATABASE(); 

в нем будут перечислены процедуры, основанные на текущей выбранной базе данных

 SHOW PROCEDURE STATUS; 

Показывает все хранимые процедуры.

 SHOW FUNCTION STATUS; 

Показывает все функции.

 SHOW CREATE PROCEDURE [PROC_NAME]; 

Покажет определение указанной процедуры.

 SHOW PROCEDURE STATUS WHERE Db = '[db_name]'; 

Покажет вам все процедуры данной базы данных.

  show procedure status; 

используя эту команду, вы можете увидеть все процедуры в базах данных

Используйте следующий запрос для всех процедур:

 select * from sysobjects where type='p' order by crdate desc 
  • использование хранимой процедуры в структуре сущностей
  • Давайте будем гением компьютера.