Lista przechowywanych procedur / funkcji linia poleceń Mysql

Jak mogę zobaczyć listę przechowywanych procedur lub przechowywanych funkcji w linii poleceń mysql, takich jak polecenia show tables; lub show databases;.

Author: Pranav 웃, 2009-04-09

15 answers

SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
 661
Author: fredrik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-29 09:56:23
show procedure status

Pokaże Ci procedury przechowywane.

show create procedure MY_PROC

Pokaże Ci definicję procedury. Oraz

help show

Pokaże Ci wszystkie dostępne opcje dla polecenia show.

 192
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 08:52:40

Dla procedury wyświetlania w nazwie

select name from mysql.proc 

Poniżej kod używany do wyświetlenia całej procedury, a poniżej kod daje taki sam wynik jak Pokaż status procedury

select * from mysql.proc 
 77
Author: Praveenkumar_V,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-26 05:01:43

Bardziej konkretny sposób:

SHOW PROCEDURE STATUS 
WHERE Db = DATABASE() AND Type = 'PROCEDURE'
 37
Author: sassman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-02 22:53:43

Jak wspomniano powyżej,

show procedure status;

Rzeczywiście wyświetli listę procedur, ale wyświetli Wszystkie na całym serwerze.

Jeśli chcesz zobaczyć tylko te w jednej bazie danych, spróbuj tego:

SHOW PROCEDURE STATUS WHERE Db = 'databasename';
 24
Author: Drarok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-09 09:48:58

Alternatywa:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES
 23
Author: macio.Jun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-13 16:21:26

Preferuję coś, co:

  1. wymienia zarówno funkcje jak i procedury,
  2. Lets me know which are which,
  3. podaje nazwy i typy procedur i nic więcej,
  4. filtruje wyniki według bieżącej bazy danych, a nie aktualnego definera
  5. sortuje wynik

Zszywanie z innych odpowiedzi w tym wątku kończy się

select 
  name, type 
from 
  mysql.proc 
where 
  db = database() 
order by 
  type, name;

... co kończy się wynikami, które wyglądają jak to:

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)
 15
Author: John Haugeland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-18 17:17:11

Użyj tego:

SHOW PROCEDURE STATUS;
 13
Author: Code Lღver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-30 12:17:48

Aby pokazać tylko swoje:

SELECT
  db, type, specific_name, param_list, returns
FROM
  mysql.proc
WHERE
  definer LIKE
  CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));
 7
Author: Charlie Skilbeck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-29 10:03:58

Wariacja na temat postu Praveenkumar_V:

SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'PROCEDURE';
SELECT `name` FROM mysql.proc WHERE db = 'dbname' AND `type` = 'FUNCTION';

..a to dlatego, że potrzebowałem zaoszczędzić czas po jakimś sprzątaniu:

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';
 7
Author: trapper_hag,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-12 10:26:38
SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'
 6
Author: Sunil Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-06 14:08:15

Jeśli chcesz wyświetlić listę procedur przechowywania dla aktualnie wybranej bazy danych,

SHOW PROCEDURE STATUS WHERE Db = DATABASE();

Wyświetli listę procedur na podstawie aktualnie wybranej bazy danych

 3
Author: Mohideen ibn Mohammed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 06:59:29
SHOW PROCEDURE STATUS;

Pokazuje wszystkie procedury składowane.

SHOW FUNCTION STATUS;

Pokazuje wszystkie funkcje.

SHOW CREATE PROCEDURE [PROC_NAME];

Pokaże definicję określonej procedury.

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

Pokaże Ci wszystkie procedury danej bazy danych.

 1
Author: Optimizer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-07 05:22:14
                           show procedure status;

Używając tego polecenia możesz zobaczyć wszystkie procedury w bazach danych

 0
Author: Karan Rajput,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-22 07:26:41

Użyj następującego zapytania dla wszystkich procedur:

select * from sysobjects 
where type='p'
order by crdate desc
 -3
Author: mwesigwa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-11 08:27:04