1.在建立儲存過程成功後,使用call 儲存過程名執行時報錯:
illegal mix of collations (utf8_unicode_ci,implicit) and (utf8_general_ci,implicit)錯誤。
解決方法:檢查儲存過程使用到的**的編碼方式,包括欄位和**本身。最後統一編碼方式。在型別是屬於字元、字串這等型別的後面加上 charset utf8
例:delimiter $$
use `mall`$$
drop procedure if exists `prc_addarticleinfo`$$
create definer=`root`@`localhost`procedure `prc_addarticleinfo`(snames text charset utf8,contents text charset utf8,createdtimes datetime,voidtimes datetime,urls text charset utf8,cags varchar(32)charset utf8,usernames varchar(32)charset utf8)
begin
declare userids int default 0;
declare genreids int default 0;
declare sname text charset utf8 default null;
declare scontent text charset utf8 default null;
declare screatedtime text charset utf8 default null;
declare svoidtime text charset utf8 default null;
declare surl text charset utf8 default null;
declare username varchar(32)charset utf8 default null;
declare cag varchar(32)charset utf8 default null;
set sname=snames;
set scontent=contents;
set screatedtime=createdtimes;
set svoidtime=voidtimes;
set surl=urls;
set username=usernames;
set cag=cags;
select id into genreids from genres where name=cag;
select admin_user_id into userids from admin_user where admin_user_name=username;
insert into article(name,content,createdtime,voidtime,url,genreid,userid)values(sname,scontent,screatedtime,svoidtime,surl,genreids,userids);
end$$
delimiter ;
2.mysql報fatal error encountered during command execution的解決辦法
連線字串里加上
allow user variables=true
解決。否則時不時的報錯,儲存過程名長一點也報錯,又有時報有時不報,引數傳1位數就正常2位數就報錯等……
MySql中建立儲存過程
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!mysql 儲存過程是從 mysql 5.0 開始增加的新功能。儲存過程的優點有一籮筐。不過最主要的還是執行效率和sql 封裝。特別是 sql 封裝功能,如果沒有儲存過程,在外部程式訪問資料庫時 例如 php 要組織很多 sql 語句。特別是業務邏...
MySql中建立儲存過程
mysql 儲存過程是從 mysql 5.0 開始增加的新功能。儲存過程的優點有一籮筐。不過最主要的還是執行效率和sql 封裝。特別是 sql 封裝功能,如果沒有儲存過程,在外部程式訪問資料庫時 例如 php 要組織很多 sql 語句。特別是業務邏輯複雜的時候,一大堆的 sql 和條件夾雜在 php...
MySql儲存過程問題
以前沒用過mysql儲存過程,第一次寫有很多的不習慣,記錄如下 b 下面是一個最簡單的mysql儲存過程,實現兩個數相加,需要特別注意的是 b delimiter create procedure proc add in a int,in b int begin declare c int if a...