2016-08-20 1 views

Antwort

1

Zuvor gab ich eine Lösung mit mysql.proc. @ Michael-sqlbot wies darauf hin, dass es viel besser wäre, information_schema.parameters zu verwenden. Diese überarbeitete Lösung folgt diesem Vorschlag.

Führen Sie diese Abfragen zu beschreiben und die Daten in information_schema.parameters zu illustrieren:

EXPLAIN information_schema.parameters; 
SELECT * FROM information_schema.parameters; 

Dies ist die überarbeitete Lösung:

SELECT parameter_name 
    FROM information_schema.parameters 
WHERE specific_schema = 'my_db' 
    AND specific_name = 'my_procedure' 
ORDER BY ordinal_position 
; 

parameter_name 
----------------- 
p_first_param 
p_second_param 
p_third_param 

Wenn Sie sie in einer einzigen Zeile benötigen, GROUP_CONCAT verwendet werden könnten, um geben Sie Komma-getrennte Namen:

SELECT GROUP_CONCAT(parameter_name) params 
    FROM information_schema.parameters 
WHERE specific_schema = 'my_db' 
    AND specific_name = 'my_procedure' 
ORDER BY ordinal_position 
; 

params 
------------------------------------------ 
p_first_param,p_second_param,p_third_param 
+0

Ich bekomme einen Fehler, dass SELE CT-Befehl für den Benutzer für die Tabelle 'proc' @Zach Victor abgelehnt – Kavya

+0

Das 'mysql'-Schema ist möglicherweise für Ihren Benutzer nicht zugänglich. Sie müssen dem Anwendungsbenutzer das 'SELECT'-Privileg für das' mysql'-Schema erteilen. –

+0

Vielen Dank .. es funktioniert .. – Kavya

Verwandte Themen