有没有办法通过在MySQL中给出过程名称和数据库名称来获取数据库中存储过程的参数名称?
最佳答案
之前,我给出了使用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
关于mysql - 通过给出过程名称来获取参数名称 - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39050863/