与sp_helptext
Microsoft SQL Server中类似,用于查看存储过程或函数定义的MySQL命令是什么?
我知道SHOW PROCEDURE STATUS
将显示可用程序列表。我需要查看单个过程的定义。
Answers:
SHOW CREATE PROCEDURE <name>
返回使用该CREATE PROCEDURE
语句创建的先前定义的存储过程的文本。交换PROCEDURE
以FUNCTION
获取存储的功能。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
您可以使用此:
SELECT ROUTINE_DEFINITION FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_SCHEMA = 'yourdb' AND ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME = "procedurename";
mysql.proc
返回的斑点param_list
,returns
和body
... ...我无法读取他们......你是怎么做到的呢?
SELECT * FROM information_schema.PARAMETERS WHERE SPECIFIC_SCHEMA='$dbName' AND SPECIFIC_NAME=\"{$row['ROUTINE_NAME']}\" AND NOT PARAMETER_MODE IS NULL ORDER BY ORDINAL_POSITION;
如果要了解过程列表,可以运行以下命令-
show procedure status;
它会为您提供过程及其定义程序的列表,然后您可以运行 show create procedure <procedurename>;
您可以在数据库mysql中使用表proc:
mysql> SELECT body FROM mysql.proc
WHERE db = 'yourdb' AND name = 'procedurename' ;
请注意,您必须为mysql.proc的select授予权限:
mysql> GRANT SELECT ON mysql.proc TO 'youruser'@'yourhost' IDENTIFIED BY 'yourpass' ;