1. 程式人生 > >SQL(insert、delete、update)執行成功,但是資料庫表中無顯示無記錄

SQL(insert、delete、update)執行成功,但是資料庫表中無顯示無記錄

     如題,程式中insert一條記錄,除錯過程中根據執行結果發現此條sql已經執行成功(影響行數為1且插入記錄已生成自增主鍵正確值),但是查詢資料庫相應表時發現表中並無相應記錄,通過直接在表中插入測試資料也能發現已有記錄的主鍵值自增後的值已被佔用(例如:id為主鍵,當前id為52,下一條記錄插入進來時id值應當為53,那麼直接操作表插入測試資料時實際id值為54,id為53雖然不存在但是已被佔用)。

造成這種情況的原因可能有以下幾種:

1、程式中的insert語句存在於一條事物中,除錯時該sql雖然執行完成,但是事務未執行完畢,造成sql結果雖然現實成功,但是 因為事務未完成導致還未寫入表中,直接查詢表資料也就無記錄了。

2、SQL語句已經拼接好,但是並沒有執行。

3、SQL語句執行(或者被執行)了事務回滾:sql語句內部事務回滾,或者sql語句所在的整個事務回滾。