明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

mysql游標不到數(shù)據(jù)問題以及處理方案

[摘要]前幾天遇到一個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知識。