mysql what - Liste der gespeicherten Prozeduren / Funktionen Mysql Command Line




8 Answers

SHOW PROCEDURE STATUS;
SHOW FUNCTION STATUS;
stored procedure

Wie kann ich die Liste der gespeicherten Prozeduren oder gespeicherten Funktionen in der mysql-Befehlszeile wie show tables; oder show databases; Befehle.




Für Ansichtsprozedur in Namen weise

select name from mysql.proc 

Unter dem Code, der verwendet wird, um die gesamte Prozedur aufzulisten, und unter dem Code wird das gleiche Ergebnis wie der Status der Show-Prozedur angegeben

select * from mysql.proc 



Wie oben erwähnt,

show procedure status;

Zeigt in der Tat eine Liste von Prozeduren, zeigt sie aber serverweit.

Wenn Sie nur die in einer einzigen Datenbank anzeigen möchten, versuchen Sie Folgendes:

SHOW PROCEDURE STATUS WHERE Db = 'databasename';



Ich bevorzuge etwas, das:

  1. Listet sowohl Funktionen als auch Prozeduren auf,
  2. Lässt mich wissen, welche welche sind,
  3. Gibt die Namen und Typen der Prozeduren und sonst nichts ,
  4. Filtert Ergebnisse nach der aktuellen Datenbank, nicht nach dem aktuellen Definierer
  5. Sortiert das Ergebnis

Wenn ich aus anderen Antworten in diesem Thread zusammenarbeite, lande ich mit

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

... was zu Ergebnissen führt, die wie folgt aussehen:

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)



Um nur deine zu zeigen:

SELECT
  db, type, specific_name, param_list, returns
FROM
  mysql.proc
WHERE
  definer LIKE
  CONCAT('%', CONCAT((SUBSTRING_INDEX((SELECT user()), '@', 1)), '%'));



SELECT specific_name FROM `information_schema`.`ROUTINES` WHERE routine_schema='database_name'



                           show procedure status;

Mit diesem Befehl können Sie alle Prozeduren in Datenbanken sehen




Verwenden Sie die folgende Abfrage für alle Prozeduren:

select * from sysobjects 
where type='p'
order by crdate desc



Related

mysql stored-procedures command-line