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

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

+450
09 апр. '09 в 8:43
источник поделиться
16 ответов
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
+707
09 апр. '09 в 8:45
источник

Связанные вопросы


Похожие вопросы

show procedure status

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

show create procedure MY_PROC

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

help show

покажет вам все доступные опции для команды show.

+206
09 апр. '09 в 8:47
источник

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

select name from mysql.proc 

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

select * from mysql.proc 
+83
26 сент. '12 в 13:45
источник

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

SHOW PROCEDURE STATUS 
WHERE Db = DATABASE() AND Type = 'PROCEDURE'
+42
06 мар. '12 в 18:27
источник

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

show procedure status;

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

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

SHOW PROCEDURE STATUS WHERE Db = 'databasename';
+30
09 нояб. '11 в 9:48
источник

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

SELECT * FROM INFORMATION_SCHEMA.ROUTINES
+26
13 февр. '13 в 16:21
источник

Мое предпочтение - это то, что:

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

Сшив вместе из других ответов в этом потоке, я заканчиваю тем, что

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)
+21
18 апр. '16 в 17:17
источник

используйте это:

SHOW PROCEDURE STATUS;
+14
09 апр. '09 в 8:48
источник

Вариант на сообщение 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';
+9
27 авг. '14 в 9:46
источник

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

SELECT
  db, type, specific_name, param_list, returns
FROM
  mysql.proc
WHERE
  definer LIKE
  CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));
+8
27 дек. '12 в 5:40
источник
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
+7
06 янв. '15 в 14:08
источник
SHOW PROCEDURE STATUS;

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

SHOW FUNCTION STATUS;

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

SHOW CREATE PROCEDURE [PROC_NAME];

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

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

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

+5
07 дек. '17 в 5:22
источник

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

SHOW PROCEDURE STATUS WHERE Db = DATABASE();

это будет список подпрограмм на основе текущей выбранной базы данных

ОБНОВЛЕНО, чтобы перечислить функции в вашей базе данных

select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="FUNCTION";

перечислить процедуры/хранить процедуры в вашей базе данных,

select * from information_schema.ROUTINES where ROUTINE_SCHEMA="YOUR DATABASE NAME" and ROUTINE_TYPE="PROCEDURE";

перечислить таблицы в вашей базе данных,

select * from information_schema.TABLES WHERE TABLE_TYPE="BASE TABLE" AND TABLE_SCHEMA="YOUR DATABASE NAME";

для просмотра списка в вашей базе данных,

способ 1:

select * from information_schema.TABLES WHERE TABLE_TYPE="VIEW" AND TABLE_SCHEMA="YOUR DATABASE NAME";

способ 2:

select * from information_schema.VIEWS WHERE TABLE_SCHEMA="YOUR DATABASE NAME";
+5
12 окт. '17 в 6:59
источник
                           show procedure status;

с помощью этой команды вы можете увидеть все процедуры в базах данных

+1
22 июл. '14 в 7:26
источник

MySQL8

Процедуры Пользователи пользователя и функция для всех баз данных:

SELECT 
    'ROUTINE_SCHEMA' AS 'database'
    ,'ROUTINE_TYPE' AS 'type'
    ,'SPECIFIC_NAME' AS 'name'
    ,'DTD_IDENTIFIER' AS 'data_type'
FROM 
    'INFORMATION_SCHEMA'.'ROUTINES'
WHERE
  'definer' LIKE
  CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
ORDER BY
    'database'
    ,'type'
    ,'name'
;

Перечислите пользовательские процедуры и функции для используемой базы данных:

SELECT 
    'ROUTINE_SCHEMA' AS 'database'
    ,'ROUTINE_TYPE' AS 'type'
    ,'SPECIFIC_NAME' AS 'name'
    ,'DTD_IDENTIFIER' AS 'data_type'
FROM 
    'INFORMATION_SCHEMA'.'ROUTINES'
WHERE
  'definer' LIKE
  CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'))
AND
   'ROUTINE_SCHEMA' = DATABASE()
ORDER BY
    'type'
    ,'name'
;
0
07 июн. '19 в 18:20
источник

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

select * from sysobjects 
where type='p'
order by crdate desc
-2
11 июн. '15 в 7:31
источник

Посмотрите другие вопросы по меткам или Задайте вопрос