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