mysql游標不到數(shù)據(jù)問題以及處理方案
發(fā)表時間:2023-08-31 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]前幾天遇到一個mysql游標不到數(shù)據(jù)問題,這個問題困擾了我兩天,現(xiàn)在終于解決了,下面小編就來為大家分享一下。這是建表語句,插入兩行數(shù)據(jù) drop table如果存在testinfo;創(chuàng)建表testinfo(name varchar(10)not null,年齡int);truncate table...
前幾天遇到一個
mysql游標不到數(shù)據(jù)問題,這個問題困擾了我兩天,現(xiàn)在終于解決了,下面小編就來為大家分享一下。
這是建表語句,插入兩行數(shù)據(jù)
drop table如果存在testinfo;
創(chuàng)建表testinfo
(
name varchar(10)not null,
年齡int
);
truncate table testinfo;
插入testinfo()值('你',15);
插入testinfo()值('me',20);
查詢的表數(shù)據(jù)
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);
關(guān)閉cur1;
結(jié)束
//
分隔符
調(diào)用test_proc();
執(zhí)行結(jié)果如下
mysql> \。/opt/mysql/test_proc.sql
查詢行,受影響的0行,1個警告(0.00秒)
查詢行,受影響(0.02秒)0行
+ ------ + ------ +
@a @b
+ ------ + ------ +
NULL NULL
+ ------ + ------ +
1行集(0.00秒)
上面是有錯誤的:1048(23000):列'名稱'不能為空
不知道錯在哪里,為什么取
不到數(shù)據(jù)? 兩天了,現(xiàn)在終于知道了。應該這么改,l如下:
插入testinfo值(@ a,@ b);改成插入testinfo值(a,b);就好了
聲明了變量a,b,然后通過游標給他賦值,但是并沒有給@ a,@ b賦值..
所以遇到問題要仔細看看就容易解決的。
【相關(guān)推薦】
1. 免費mysql在線視頻教程
2. MySQL最新手冊教程
3. 數(shù)據(jù)庫設(shè)計那些事
以上就是mysql游標不到數(shù)據(jù)問題以及解決方案的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
學習教程快速掌握從入門到精通的SQL知識。