我可以通过执行以下命令获取程序列表:
show procedure status where Db='test1';
通常,我们可以通过执行以下命令获得CREATE
语法:
show create procedure sampleProcedure1;
但是CREATE Procedure
显示为空。是否有任何解决方法来获取该过程的原始CREATE
?
答案 0 :(得分:2)
来自MySQL documentation:
要使用任一语句,您必须是例程
DEFINER
子句中指定的用户或SELECT
mysql.proc
表的Create Procedure
访问权限。如果您没有例程本身的权限,则Create Function
或NULL
字段显示的值将为SELECT
。
因此解决方案是让用户mysql.proc
访问GRANT SELECT on mysql.proc TO 'user'@'hostname'
:
user
将hostname
和{{1}}替换为适当的值。