1. 程式人生 > >MySql存儲過程的調試

MySql存儲過程的調試

更新 dbf 印象 mysql存儲過程 java for note 一個 地方

寫和調試存儲過程比較好的工具是dbForge studio for mysql

  校驗其中臨時表字段是否符合要求,在存儲過程中動態為臨時表添加字段約束,或者寫個遊標,把數據叠代出來,一個個判斷。當遊標叠代時發現錯誤,可以手動執行一條錯誤的語句(如insert into notExists values(1)),來終止存儲過程。

  但是以上加約束或者遊標遍歷,出現錯誤時,在Java調用端僅僅提示xxx not exists 或者 xxx should not be null 等錯誤,並沒有提供具體在存儲過程中哪一行報的錯誤。

  當存儲過程中多個地方對同一個表進行操作,執行後發現這個表數據異常,難以發現是哪裏的操作導致的數據異常,只能從上到下輪流對多個地方加約束,多次執行存儲過程來排查。

  其中印象較深刻的是表中的某個字段,在存儲過程中並沒有對它進行寫入,而且表結構上設置了默認值,執行存儲過程後總是為null,手動為這個字段插入值也還是為null,問題沒能排查出來,只能折中地多執行一行update將null更新為默認值

MySql存儲過程的調試