icc*_*c97 5 mysql stored-procedures
用什么SQL列出MySQL存储过程的参数?该information_schema.routines表包含存储过程名称,但似乎没有存储参数的标准位置.
das*_*ash 13
最新版本的MySQL(5.5.3及更高版本)引入了information_schema.parameters对象,该对象应该为您提供所需的信息;
SELECT *
FROM information_schema.parameters
WHERE SPECIFIC_NAME = 'your_procedure';
Run Code Online (Sandbox Code Playgroud)
早期版本的MySql依赖于访问mysql.proc表; "param_list"列中包含了您感兴趣的名称的过程中的所有参数信息.但是,信息显然是非标准化的,因为它以逗号分隔的字符串存储:
SELECT param_list FROM mysql.proc WHERE db='your_database' AND name='your_procedure';
Run Code Online (Sandbox Code Playgroud)
得到:
IN param1 VARCHAR(32), IN param2 int, ...
Run Code Online (Sandbox Code Playgroud)
这需要更多的工作才能用于演示格式; 虽然string.split函数至少可以整理它.