起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 257|回复: 10

【结】数据库并发

[复制链接]
发表于 2009-12-1 14:53:04 | 显示全部楼层 |阅读模式
如果两个人  
同时操作一个流程里的一个功能


这个功能用到了这个流程的业务信息里的同一个数据集  
这种并发的读写操作应该怎么处理啊?
回复

使用道具 举报

发表于 2009-12-1 15:20:27 | 显示全部楼层
同一个数据集没有关系的,如果是同一条记录,那么需要注意了,注意是Where过去要能找到记录,如果多个人给同一条记录的同一个字段更新,如果设置所有字段或者修改字段参与Where条件定位,那么肯定会报错的(见  http://bbs.justep.com/forum.php?mod=viewthread&tid=2355  )。这就需要根据实际情况来设置更新选项了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-1 15:37:35 | 显示全部楼层
更新选项现在没有什么问题   设置的是主键   不会报告说数据已经被更改的错误
但是同时操作的一条记录
同时读取了一个记录   然后做更新
出来的时候数据有问题  这个应该怎么处理啊?
回复 支持 反对

使用道具 举报

发表于 2009-12-1 16:08:52 | 显示全部楼层
啥问题呢?具体说说
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-1 16:27:23 | 显示全部楼层
有个单据表  用这个表生成单据的编号
从这个表中读取记录   根据读出来的记录生成编号  然后再更新数据库
如果两个人同时从数据库中读取同一条记录的时候就有返回相同的值
然后生成了相同的单据编号 这种情况应该如何处理?
谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-1 16:54:57 | 显示全部楼层
我现在在数据库直接加了唯一约束
然后同时更新相同数据的时候弹出对话框如图:
我能修改这个提示框里的内容么?

未命名.jpg

13.46 KB, 下载次数: 98

回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-1 17:09:27 | 显示全部楼层
我在业务信息上加了唯一约束
但是没有起作用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-1 17:32:25 | 显示全部楼层
我把数据库上的唯一约束去掉了
在逻辑数据库上加了唯一约束    在业务信息的数据集上也加了必须唯一
但是都没有反映  
请问下在什么情况下平台的数据约束才起作用?  还需要设置那些地方?
回复 支持 反对

使用道具 举报

发表于 2009-12-1 17:46:05 | 显示全部楼层
这样的东东用数据库的种子字段吧。

要不你就要锁表,等用完在解锁,但这样肯定会出现等待,影响性能的

对于约束仅仅是当前数据集实例,不能对所有的,所以你定义约束,最终提交数据库的时候还是有可能出现6楼的错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-1 19:21:39 | 显示全部楼层

好的   那谢谢了  结贴吧
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 20:29 , Processed in 0.041391 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表