今天我遇到了一些好奇的行爲,並想知道它是預期的還是標準的。我們對MySQL5使用Hibernate。在編碼過程中,我忘記關閉交易,我想其他人可以聯繫。未提交的數據庫事務和自動增加列
當我最後關閉事務時,運行代碼並檢查了表,我注意到以下內容。所有時間我錯誤地運行我的代碼而沒有關閉事務,因此沒有導致實際的行被插入,但增加了自動增量代理主鍵值,這樣我就有一個間隙(即沒有行的id字段值爲751至762)。
這是預期的還是標準的行爲?可能會因數據庫而異?和/或Hibernate自己的事務抽象對此有一些可能的影響嗎?
我知道答案,但這仍然是一個有趣的問題! – RichardOD 2009-09-09 14:22:48
理想情況下,您的應用程序/設計不應受序列中任何空白的影響 - 您絕不應該陷入這種情況下 – 2009-09-09 15:28:24