mysql 遊標提前退出問題

   今天在家裏寫一個mysql存儲過程,因爲性能的原因使用了遊標,但是問題就從這裏出現了。
遊標遍歷表大概有50w+的數據,遍歷出來經過幾個表的查詢將結果集合插入另外一個表中,但是執行的結果只有一條數據插入結果表,開始以爲是條件判斷造成,檢查每一步判斷,沒有找到問題,將中間處理過程去掉只進行數據遍歷,發現一切正常,問題可能出在處理過程中。經檢查發現當在遊標循環過程中select的結果集如果爲空,就會觸發遊標continue handler for not found 提前將done置爲1,導致提前退出遊標。
  解決辦法:
                1、當結果集中有空的情況下使用select count(*) 使其結果不爲空
                2、不使用select對可能有空結果表進行查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章