mysql - 通过给出过程名称来获取参数名称 - MySQL

标签 mysql

有没有办法通过在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/

相关文章:

mysql - 有没有办法在单个查询中选择不同并与相关子查询相交?

php - 服务器 MySQL 自动设置属性 "on update CURRENT_TIMESTAMP"

mysql - 显示数据库内具有特殊前缀的表的数量

MySQL如何将两个表中的值插入到一个表中

mysql - 提供对 phpmyadmin 页面的读/写访问

MySQL插入问题

mysql UPDATE 说列不能为空。为什么它是空的?

gzip - 如何从 Windows 上包含 gzip 内容的 .sql 文件导入数据

MySQL:唯一索引不符合 `null` 值

mysql - 删除下节中定义的逻辑语句