千家信息网

都是navicat的错

发表于:2024-11-17 作者:千家信息网编辑
千家信息网最后更新 2024年11月17日,对普通的mysql账号,在navicat12上建立的连接,在界面上双击执行函数,报参数不对,而用root账号连接是执行该函数正常的错误如下:Procedure execution failedInco
千家信息网最后更新 2024年11月17日都是navicat的错
  1. 对普通的mysql账号,在navicat12上建立的连接,在界面上双击执行函数,报参数不对,

    而用root账号连接是执行该函数正常的

    错误如下:

    Procedure execution failed

    Incorrect number of arguments for FUNCTION we_newrs.func_nextval; expected 1, got 0


    英文意思是调用function参数的个数错误,需要一个,给0个。

    开始还以为是这个账号没执行 execute 权限,授权了好几遍,flush了好几次,都没用

    后来,在命令行下,执行: select fun_xxxx('xxx'); 是ok的,才知道这个原来是navicat的问题。

  2. navicat12 执行sql/保存function/procedure,有错误时返回的信息提示错误代码,不提示错误位置。让你的工作难度加大10倍。还不如命令行。


  3. 另外权限的变更,要做的两件事

    3.1 服务器上记得flush privileges; 让你变更写入权限表

    3.2 要重启应用, 对于已经连接到数据库的应用程序,权限变更不会生效。

    比如你授权了execute权限,应用程序还是报execute command denied to user xxx



0