1.通過一個字段區別的就叫邏輯鎖了,在我作的工程中沒有用到過.所以沒有什么經驗.
2.物理鎖.
現象:多人對數據庫進行物理操作的時候,如果不鎖表,那么A和B檢索出來的數據是一樣的,但是A先更新了數據,這時候B就是臟數據,點更新會把A的內容更新掉.
解決方案:
在檢索數據的時候同時把你要操作的紀錄或者表鎖了.(鎖紀錄比較好點)
oracle提供了在檢索的時候就鎖表的功能.就是在SQL文后面加上:FOR UPDATE NOWAIT SKIP LOCKED.
SKIP LOCKED 加上去的話就是當檢索到的這條紀錄被鎖的話,就不等待直接跳過.
''如果鎖了
if LockedRecord() = true then
??????msgbox "locked"
endif