如何锁定某行记录?

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
如何把表中的一些记录临时锁定,不让用户操作,而只让某些特定的用户操作?但允许操作没锁定的记录。
期待高手的指点。最好能写出sql代码。先谢过了。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
no answer?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
可以这样实现吗?
期待高手
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
什么叫某些特定的用户?与普通用户有什么区别?
可考虑使用DBMS_RLS包!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
select ... for update 可以吗?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
比如说,A、B两用户都对表T1有操作权限。我想,如果A用户在操作表T1的某行记录了,就不允许B用户对该行记录再进行操作。只有等A用户处理完毕后,其他用户方可操作。
select...for uodate是对表中的所有记录进行更新等操作的锁定。而我想只对某些记录进行锁定。
请各位高手再指点了。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
问的好,
我最近也在想这个问题,
其实大的售票系统中都有用到,
一种方式是在表中多一个字段,专门用来放访问者名,如果有人在对某条记录处理时就会把名字放在里面,这样当再有人要访问时就会出现等待状态,直到结束时立即清空,这样别人就可以进行操作了。
不知道真真是怎么实现的,有知道的话谢多多指教
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
顶!
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
关注
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
加一个PROCESSING CHAR(1)DEFAULT ‘N’ 字段。
在对记录做操作前,先判断IF PROCESSING=‘N’,THEN SET PROCESSING=‘Y’,操作完成后再SET PROCESSING=‘N’。
IF PROCESSING=‘Y’,RETURN;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行