1.通过一个字段区别的就叫逻辑锁了,在我作的工程中没有用到过.所以没有什么经验.
2.物理锁.
现象:多人对数据库进行物理操作的时候,如果不锁表,那么A和B检索出来的数据是一样的,但是A先更新了数据,这时候B就是脏数据,点更新会把A的内容更新掉.
解决方案:
在检索数据的时候同时把你要操作的纪录或者表锁了.(锁纪录比较好点)
oracle提供了在检索的时候就锁表的功能.就是在SQL文后面加上:FOR UPDATE NOWAIT SKIP LOCKED.
SKIP LOCKED 加上去的话就是当检索到的这条纪录被锁的话,就不等待直接跳过.
''如果锁了
if LockedRecord() = true then
msgbox "locked"
endif