Как я могу просмотреть список хранимых процедур или сохраненных функций в командной строке mysql, например команды show tables;
или show databases;
.
Список хранимых процедур/функций Командная строка Mysql
Ответ 1
SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
Ответ 2
show procedure status
покажет вам сохраненные процедуры.
show create procedure MY_PROC
покажет вам определение процедуры. И
help show
покажет вам все доступные опции для команды show
.
Ответ 3
Процедура просмотра в имени мудрый
select name from mysql.proc
ниже код, используемый для перечисления всей процедуры и ниже кода, дает тот же результат, что и статус процедуры показа
select * from mysql.proc
Ответ 4
Более конкретный способ:
SHOW PROCEDURE STATUS
WHERE Db = DATABASE() AND Type = 'PROCEDURE'
Ответ 5
Как упоминалось выше,
show procedure status;
На самом деле отобразит список процедур, но покажет их все по всему серверу.
Если вы хотите увидеть только те, что находятся в одной базе данных, попробуйте следующее:
SHOW PROCEDURE STATUS WHERE Db = 'databasename';
Ответ 6
Альтернатива:
SELECT * FROM INFORMATION_SCHEMA.ROUTINES
Ответ 7
Мое предпочтение - это то, что:
- Перечисляет обе функции и процедуры,
- Позволяет мне узнать, какие из них,
- Дает имена и типы процедур и ничего больше,
- Фильтрует результаты по текущей базе данных, а не по текущему определителю
- Сортировка результата
Сшив вместе из других ответов в этом потоке, я заканчиваю тем, что
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)
Ответ 8
используйте это:
SHOW PROCEDURE STATUS;
Ответ 9
Вариант на сообщение 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 [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';
Ответ 10
Чтобы показать только ваши:
SELECT
db, type, specific_name, param_list, returns
FROM
mysql.proc
WHERE
definer LIKE
CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));
Ответ 11
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
Ответ 12
Показывает все хранимые процедуры:
SHOW PROCEDURE STATUS;
Показывает все функции:
SHOW FUNCTION STATUS;
Показывает определение указанной процедуры:
SHOW CREATE PROCEDURE [PROC_NAME];
Показывает все процедуры данной базы данных:
SHOW PROCEDURE STATUS WHERE Db = '[db_name]';
Ответ 13
Если вы хотите отобразить процедуру сохранения для текущей выбранной базы данных,
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";
Ответ 14
show procedure status;
с помощью этой команды вы можете увидеть все процедуры в базах данных
Ответ 15
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'
;
Ответ 16
Используйте следующий запрос для всех процедур:
select * from sysobjects
where type='p'
order by crdate desc