下午弄個儲存過程,因為效能要求,重寫了下,功能和影響範圍應該一樣,但是實際執行結果卻不一樣:乙個操作了94條資料,乙個操作了299條資料。倒騰半天,百思不得其解。
後來,增加變數,統計遍歷數量,發現第一遍歷了5w+,第二個遍歷了23w+。靠,迴圈提前退出!上網google,找到這麼一句話:當游標中迴圈中的select語句查詢結果為空時,會丟擲乙個'02000'狀態而使得done標誌變數提前置為1,從而使得迴圈結束。
的確,提前結束迴圈的儲存過程迴圈中,的確有select。
解決:1、不用select;2、讓結果永遠不為空,例如select count(*),……
倒騰半天,記在這裡,分享給大家。
mysql游標提前退出迴圈的原因
下午弄個儲存過程,因為效能要求,重寫了下,功能和影響範圍應該一樣,但是實際執行結果卻不一樣 乙個操作了94條資料,乙個操作了299條資料。倒騰半天,百思不得其解。後來,增加變數,統計遍歷數量,發現第一遍歷了5w 第二個遍歷了23w 靠,迴圈提前退出!上網google,找到這麼一句話 當游標中迴圈中的...
Mysql游標和迴圈
繼續講述小菜鳥跟mysql的那些事 前幾天接到這樣乙個需求 將資料庫中每天符合條件的記錄進行固化,固化的同時需要對資料進行相應的修改和計算。恩,我開始的思路是這樣的 每天按照條件對資料庫中的資料進行搜尋,然後呢?建乙個table進行資料的固化,即將選出來的資料插進新建的table裡面。想法是簡單的,...
mysql 游標指標迴圈
儲存過程 delimiter use lost customer repair drop procedure ifexists updateltrepairssuccesscount create definer root procedure updateltrepairssuccesscount ...