存在一个非常奇怪的问题。我有一个过程,定义器名为admin。
[在某些情况下,我们必须删除用户“ dbadlys”。因此,为了做到这一点,我们在删除帐户dbadlys之前用新帐户“ admin @%”更新了mysql.proc表,并且也进行了刷新特权。
我还从information_schema.routines中验证了定义者名称,我看到新的定义者名称现在为admin @%。
问题:
即使在代码调用过程时定义器名称现在已更新为新名称,它仍使用旧的定义器名称dbadlys并出现以下错误:
指定为定义者的用户不存在
[进一步调查后,我发现重新连接实例时没有错误,但是,如果我们更改定义器名称并尝试再次执行该过程,则它不会反映出来。
我的问题:
如果您具有dba特权,请尝试在不使用定义程序的情况下重新创建SP。
定义器是可选的,除非您有非常特殊的需要,否则不需要使用它们。