2016-08-20 1 views

ответ

1

Ранее я дал решение, используя mysql.proc. @ Michael-sqlbot отметил, что было бы гораздо лучше использовать information_schema.parameters. Это пересмотренное решение следует этому предложению.

Выполнение этих запросов, чтобы описать и проиллюстрировать данные в information_schema.parameters:

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

Это пересмотренное решение:

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 

Если вам нужно их в один ряд, GROUP_CONCAT могут быть использованы для дайте вам запятые имена:

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

Я получаю сообщение об ошибке SELE Команда CT запрещена пользователю для таблицы 'proc' @Zach Victor – Kavya

+0

. Схема 'mysql' может быть недоступна для пользователя. Вы должны предоставить пользователю приложения привилегию 'SELECT' в схеме' mysql'. –

+0

thank u so much .. он работает .. – Kavya

Смежные вопросы