我單位物資系統:庫存表kcb,庫存明細kcmx?
當發生一筆動態的時候,先查詢庫存表中的庫存數量,然后加上增減數量,得到新庫存,update,commit;?
接著把庫存數量,增減數量,更改時間分別插入到庫存明細:前次數量,增減數量,更改時間。?
問 題:現在有兩條數據更改時間很接近? a? 10:51:47:01b? 10:51:46:25? .也就是說兩條數據先后更新,而且更新的是同樣一筆物資。于是,a? 條記錄得到的前存數量和b條記錄得到的前存數量一樣,(好像叫讀臟數?)于是記錄b的更新就被當作不存在了!?
系統在隨后的更新中查到的是記錄a更新候的數據,一切正常,唯有記錄b? 被忽略了;(于是庫存錯了,領導批了)?
?
還有一個奇怪的問題,就是庫存明細的查詢是用存儲過程作的,為什么select到pb的數據窗口之后別的數據都是按時間順序排列,唯有上面兩條,a在b之前!時間也會錯?相差太近??
我以后怎么辦?高人教我
http://blog.csdn.net/qiume/archive/2009/02/26/3938382.aspx
對數據庫中的數據修改都是在內存中完成的,這些修改的結果可能已經寫到硬盤也可能沒有寫到硬盤,如果在操作過程中,發生斷電或系統錯誤等故障,數據庫可以 保證未結束的事務對數據庫的數據修改結果即使已經寫入磁盤,在下次數據庫啟動后也會被全部撤銷;而對于結束的事務,即使其修改的結果還未寫入磁盤,在數據 庫下次啟動后會通過事務日志中的記錄進行“重做”,即把丟失的數據修改結果重新生成,并寫入磁盤,從而保證結束事務對數據修改的永久化。這樣也保證了事務 中的操作要么全部完成,要么全部撤銷。
當發生一筆動態的時候,先查詢庫存表中的庫存數量,然后加上增減數量,得到新庫存,update,commit;?
接著把庫存數量,增減數量,更改時間分別插入到庫存明細:前次數量,增減數量,更改時間。?
問 題:現在有兩條數據更改時間很接近? a? 10:51:47:01b? 10:51:46:25? .也就是說兩條數據先后更新,而且更新的是同樣一筆物資。于是,a? 條記錄得到的前存數量和b條記錄得到的前存數量一樣,(好像叫讀臟數?)于是記錄b的更新就被當作不存在了!?
系統在隨后的更新中查到的是記錄a更新候的數據,一切正常,唯有記錄b? 被忽略了;(于是庫存錯了,領導批了)?
?
還有一個奇怪的問題,就是庫存明細的查詢是用存儲過程作的,為什么select到pb的數據窗口之后別的數據都是按時間順序排列,唯有上面兩條,a在b之前!時間也會錯?相差太近??
我以后怎么辦?高人教我
http://blog.csdn.net/qiume/archive/2009/02/26/3938382.aspx
對數據庫中的數據修改都是在內存中完成的,這些修改的結果可能已經寫到硬盤也可能沒有寫到硬盤,如果在操作過程中,發生斷電或系統錯誤等故障,數據庫可以 保證未結束的事務對數據庫的數據修改結果即使已經寫入磁盤,在下次數據庫啟動后也會被全部撤銷;而對于結束的事務,即使其修改的結果還未寫入磁盤,在數據 庫下次啟動后會通過事務日志中的記錄進行“重做”,即把丟失的數據修改結果重新生成,并寫入磁盤,從而保證結束事務對數據修改的永久化。這樣也保證了事務 中的操作要么全部完成,要么全部撤銷。