stored-procedures what - Liste der gespeicherten Prozeduren / Funktionen Mysql Command Line




variable deklarieren (13)

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


Answers

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

Ein spezifischerer Weg:

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

                           show procedure status;

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


show procedure status

zeigt Ihnen die gespeicherten Prozeduren.

show create procedure MY_PROC

zeigt Ihnen die Definition eines Verfahrens. Und

help show

zeigt Ihnen alle verfügbaren Optionen für den Befehl show .


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)), '%'));

Wenn Sie die Store-Prozedur für die aktuelle ausgewählte Datenbank auflisten möchten,

SHOW PROCEDURE STATUS WHERE Db = DATABASE();

Es werden Routinen basierend auf der aktuell ausgewählten Datenbank aufgelistet


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';

Alternative:

SELECT * FROM INFORMATION_SCHEMA.ROUTINES

Verwenden Sie die folgende Abfrage für alle Prozeduren:

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

SHOW PROCEDURE STATUS;

Zeigt alle gespeicherten Prozeduren an.

SHOW FUNCTION STATUS;

Zeigt alle Funktionen an.

SHOW CREATE PROCEDURE [PROC_NAME];

Zeigt die Definition der angegebenen Prozedur an.

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

Zeigt Ihnen alle Prozeduren der angegebenen Datenbank.


benutze das:

SHOW PROCEDURE STATUS;

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)

Ich habe die Antwort von diesen zwei Webseiten gefunden: Net Maniac und Aimred .

Sie müssen eine Version> 0.8 Rake haben, um diese Technik zu verwenden

Die normale Rake-Task-Beschreibung lautet wie folgt:

desc 'Task Description'
task :task_name => [:depends_on_taskA, :depends_on_taskB] do
  #interesting things
end

Um Argumente zu übergeben, mache drei Dinge:

  1. Fügen Sie die Argumentnamen nach dem Namen der Aufgabe durch Kommas getrennt hinzu.
  2. Setzen Sie die Abhängigkeiten am Ende mit: needs => [...]
  3. Ort | t, args | nach dem tun. (t ist das Objekt für diese Aufgabe)

Verwenden Sie args.arg_name, um auf die Argumente im Skript zuzugreifen

desc 'Takes arguments task'
task :task_name, :display_value, :display_times, :needs => [:depends_on_taskA, :depends_on_taskB] do |t, args|
  args.display_times.to_i.times do
    puts args.display_value
  end
end

Um diese Task über die Befehlszeile aufzurufen, übergeben Sie ihr die Argumente in [] s

rake task_name['Hello',4]

wird ausgegeben

Hello
Hello
Hello
Hello

Wenn Sie diese Aufgabe von einer anderen Aufgabe aufrufen und Argumente übergeben möchten, verwenden Sie invoke

task :caller do
  puts 'In Caller'
  Rake::Task[:task_name].invoke('hi',2)
end

dann der Befehl

rake caller

wird ausgegeben

In Caller
hi
hi

Ich habe keine Möglichkeit gefunden, Argumente als Teil einer Abhängigkeit weiterzugeben, da der folgende Code bricht:

task :caller => :task_name['hi',2]' do
   puts 'In Caller'
end






mysql stored-procedures command-line