mysql游標不到數據問題以及解決方案

前幾天遇到一個mysql游標不到數據問題,這個問題困擾了我兩天,現在終于解決了,下面小編就來為大家分享一下。

這是建表語句,插入兩行數據?

drop?table如果存在testinfo;  創(chuàng)建表testinfo  (  name?varchar(10)not?null,  年齡int  );  truncate?table?testinfo;  插入testinfo()值('你',15);  插入testinfo()值('me',20);

mysql的表數據?

mysql>?select?name,age?from?testinfo;?  +?------?+?------?+?  |?名稱|?年齡|?  +?------?+?------?+?  |?你|?15?|?  |?我|?20?|?  +?------?+?------?+?  這是使用游標的存儲過程?  drop?procedure?if?exists?test_proc;  分隔符//  創(chuàng)建過程test_proc()  開始  DECLARE?done?int?default?false;  DECLARE一個char(10);  DECLARE?b?int;  DECLARE?cur1游標用于選擇名稱,age?from?testinfo;  DECLARE繼續(xù)處理SQLSTATE'02000'set?done?=?true;  打開cur1;  read_loop:loop  ????????FETCh?cur1進入a,b;  ????????如果這樣做了  ????????????????離開read_loop  ????????萬一;  ????????選擇@?a,@?b;  ????????插入testinfo值(@?a,@?b);  端環(huán);  關閉cur1;  結束  //  分隔符  調用test_proc();

執(zhí)行結果如下?

mysql>?。/opt/mysql/test_proc.sql?  查詢行,受影響的0行,1個警告(0.00秒)?  查詢行,受影響(0.02秒)0行?  +?------?+?------?+?  |?@a?|?@b?|?  +?------?+?------?+?  |?NULL?|?NULL?|?  +?------?+?------?+?  1行集(0.00秒)

上面是有錯誤的:1048(23000):列’名稱’不能為空?

不知道錯在哪里,為什么
不到數據??兩天了,現在終于知道了。應該這么改,l如下:

插入testinfo值(@ a,@ b);改成插入testinfo值(a,b);就好了?
聲明了變量a,b,然后通過游標給他賦值,但是并沒有給@ a,@ b賦值..

所以遇到問題要仔細看看就容易解決的。

【相關推薦】

1.?mysql

2.?mysql

3.?mysql

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享