为了取得不重复的数据,我需要从table 中一行取得可用号码,我想在读取并修改的同时,不允许其他用户读取改行,当我释放后,其他用户才允许读取修改。 应该怎么做啊?
解决方案 »
- 急!!!改ip后,出现协议适配器不可加载的错误,但是配置文件使用的是host名,不解为什么会出现这个错误,请高人解答
- 数据库恢复
- Predefined Oracle Server异常和Non-predefined Oracle Server异常的区别是什么?
- 几种常用数据库:Oracle\Ms SQL Server\Sybase\MySQL,在查询效率上有何优劣?
- PL/SQL程序中如何获取另外一台主机的系统时间(非本地主机)?
- 新建的用户导入dmp文件,其中一张表导入失败
- oracle创建的用户无法调用存储过程???
- DBA STUDIO 中在 文件菜单中点击 从数据库添加到树中选项 无反映,问题会出在哪里?
- 一个嵌套表的问题
- 冒昧的问个问题,大家不要打我!!!
- 这种功能怎么实现?
- 急!!我在 oracle9i 中创建用户和表时遇到了问题!
for update会锁定select出来的行.方法2. 在程序里: update table set column = column where ....; 这样并未改变值,但锁定了该行.直到commit; rollback;
当修改的时候触发触发器修改Flag = '0',读取的时候增加一个条件 flag = '1'
当修改的时候触发触发器修改Flag = '0',读取的时候增加一个条件 flag = '1'
---------------
这种方法可行。 for update的方法行不通。
select * from tab for update skip locked
当修改的时候触发触发器修改Flag = '0',读取的时候增加一个条件 flag = '1'
-------------------
这个方法不行,当修改但没有commit 的时候,其他用户看到的还是修改前的结果。