對(duì)普通的MySQL賬號(hào),在navicat12上建立的連接,在界面上雙擊執(zhí)行函數(shù),報(bào)參數(shù)不對(duì),
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了馬山免費(fèi)建站歡迎大家使用!
而用root賬號(hào)連接是執(zhí)行該函數(shù)正常的
錯(cuò)誤如下:
Procedure execution failed
Incorrect number of arguments for FUNCTION we_newrs.func_nextval; expected 1, got 0
英文意思是調(diào)用function參數(shù)的個(gè)數(shù)錯(cuò)誤,需要一個(gè),給0個(gè)。
開始還以為是這個(gè)賬號(hào)沒執(zhí)行 execute 權(quán)限,授權(quán)了好幾遍,flush了好幾次,都沒用
后來,在命令行下,執(zhí)行: select fun_xxxx('xxx'); 是ok的,才知道這個(gè)原來是navicat的問題。
navicat12 執(zhí)行sql/保存function/procedure,有錯(cuò)誤時(shí)返回的信息提示錯(cuò)誤代碼,不提示錯(cuò)誤位置。讓你的工作難度加大10倍。還不如命令行。
另外權(quán)限的變更,要做的兩件事
3.1 服務(wù)器上記得flush privileges; 讓你變更寫入權(quán)限表
3.2 要重啟應(yīng)用, 對(duì)于已經(jīng)連接到數(shù)據(jù)庫(kù)的應(yīng)用程序,權(quán)限變更不會(huì)生效。
比如你授權(quán)了execute權(quán)限,應(yīng)用程序還是報(bào)execute command denied to user xxx