如果可以在查询的时候锁住查询出来的记录 那么可以直接用select …… for update 做查询语句 这样就可以保证没有人会在你查询的时间差内修改数据 当然你也需改不了别人查询地数据 但是不建议这样做 这样很容易造成数据的地锁死现象。我们的处理办法是 在数据表里加入版本号的字段 每次数据表的变动 都要修改这个版本号 使版本号加1 这样 只要判断版本号是否与你查询出来的版本号相同 就可以判断是不是有人同时查出了同一条记录 并且比你早修改了 你明白了吗?
调试欢乐多
“我们的处理办法是 在数据表里加入版本号的字段 每次数据表的变动 都要修改这个版本号 使版本号加1 这样 只要判断版本号是否与你查询出来的版本号相同 就可以判断是不是有人同时查出了同一条记录”
可以改进为采用timestamp字段。
难道oracle没有考虑这个问题吗?我觉得只需要根据业务的需要,使用不同的锁机制就可以了
分不够再加,具体就行。
有没有通过ORACLE的提供的方法解决这个问题的,比如锁
你们的版本号是从Oracle启发的吧!
Oracle在读数据时其实本身已经为每一行加上版本号---SCN号