现有一个表,假设主键字段为BookID,它需要保持唯一性,但不知道是不是有比较好的方法?
我是想每次在保存前取表记录中BOOKID的最大号加1,但是现在有大约800个用户在不停的向这个表中插入记录,每插一条的bookID 都是取最大号加一,但是因为用户都同时在插入记录,想知道如何能使用记录顺利保存,而不返回‘违反约束。’等字样,并且不想后客户端弹出对话框让用户重新保存或重试?
我是想每次在保存前取表记录中BOOKID的最大号加1,但是现在有大约800个用户在不停的向这个表中插入记录,每插一条的bookID 都是取最大号加一,但是因为用户都同时在插入记录,想知道如何能使用记录顺利保存,而不返回‘违反约束。’等字样,并且不想后客户端弹出对话框让用户重新保存或重试?
解决方案 »
- 在WIN7下如何注入DLL
- 如何安装delphi tnt控件?
- 怎么判断TSQLquery是否执过行close?
- 来加分了!!!串口转以太网设备在delphi下开发用哪个控件实现多设备对一台PC通讯...
- [高分请您参与]关于类、继承的一些设想和疑问,我想会对大家有帮助的
- 如何区分windows 的版本号?
- 谁有<<Delphi深度编程及其项目应用开发>>这本书?书中的实例的数据库如何使用,解决者马上给分!!!!!!!!!
- 学Delphi,看那本书?
- 如果公司老板找理由不给发11月到现在的工资,有什么好办法对付吗?实在是头大。
- 在win2000下的access数据库怎么访问之2
- 如何让日期自动加上6个月?
- 如何定义一个Record 让UDP收发,以实现像QQ那样的聊天功能?
如果只是本表唯一,用IDENTITY屬性定義該列,如果要在整個數據庫唯一,用ROWGUIDCOL屬性
楼上说的我不太明白,能否详细说说。
我的实际情况是这样,我的表中有一个字段是blob字段,一般可能保存文件的大小为10M以下,我现在的做法是先把非blob字段的值保存到数据库,接着再对这条记录编辑,把blob字段的内容保存到数据库中,你说的方法对这的要求可行不?
客户端大约1000多台pc,同时使用的用户大约800多
用户从客户端向oracle中插入数据
Oracle
|
Server
|||
__ | _____
| | |
Client1 Client2 Client3...
请问oracle中的行锁如何解锁?用什么命令?
呵呵,Oracle俺不会
lock table mytable in row mode
insert .........
commit
commit后就自动解锁刚才锁住的行吗
呵呵,报歉,昨天贪睡了点,看来我提的建议您已经理解了。
oracle俺还没研究过,帮不上更大的忙了,深表遗憾……to OverlordBlind(OverlordBlind)谢谢兄弟画图解说,还请多多指教!
第一步:A,B都运行下面语句
insert into tbl_book(bookid, bookname) values(bid.nextval, 'bookname');
select bid.currval from dual;
commit;
运行完之后A的currval当前值为100,B的currval当前值为101
第二步:
A的语句保持不变
B的语句删除insert语句即变为select bid.currval from dual;
第三步:
先执行A中的语句,currval的前变为102
再执行B中的语句,currval的值还是101
为什么为什么B中的currval值不是102