各位大虾:
我想设计一个网上订票系统,我想请教:如何控制数据并发访问和修改的问题?
如:
操作员a查询没有被预订的车票信息,假设查询到了A1,A2,A3这三张票。
同时,操作员b 也在查询没有被预订的车票信息,结果也是A1,A2,A3。
操作员a想预定A2这张票,于是点了“预定”按钮;
几乎同时,操作员b也想预定A2这张票,于是也点了“预定”按钮;
(预定操作:UPDATE一条记录的一个字段) 请问此时:我如何处理这种并发修改问题?
这两个用户几乎同时UPDATE同一条记录。
用锁吗?
请赐教!
多谢
我想设计一个网上订票系统,我想请教:如何控制数据并发访问和修改的问题?
如:
操作员a查询没有被预订的车票信息,假设查询到了A1,A2,A3这三张票。
同时,操作员b 也在查询没有被预订的车票信息,结果也是A1,A2,A3。
操作员a想预定A2这张票,于是点了“预定”按钮;
几乎同时,操作员b也想预定A2这张票,于是也点了“预定”按钮;
(预定操作:UPDATE一条记录的一个字段) 请问此时:我如何处理这种并发修改问题?
这两个用户几乎同时UPDATE同一条记录。
用锁吗?
请赐教!
多谢
解决方案 »
- SQL多条件分支UPDATE
- 小弟开发了一套煤矿物资管理系统,已经交付客户使用,在使用过程中出现一个相当麻烦的问题
- 搭建Oracle11g RAC遇到的问题
- 急,急,急,100分求助oracle9i高手!
- 新手请教:oracle8i客户端与服务器端的连接配置
- 问个简单问题?
- sql
- 要学习Oracle,希望大家给个方向,推荐一些好的书籍,100分送
- oracle 表数据是会更新的,查询的时候又必须分页查询,怎么分页查询办?
- 大神们来给我看看这是什么问题啊 ,弄了两天了,不知道为什么
- 急!!!asp中如何用 ado 连接 oracle 数据库?
- 请教如何每天按时查询结果,并根据查询结果生成新的查询任务。新手多谢!!
update TABLENAME set A=编号 where ID=查询到的ID and A is null;
执行完update后判断影响的行数,如果行数是1表示预订成功,0表示不成功。
nicolas1999king(恋伶)
请教 : nicolas1999king(恋伶)
“在另一个操作员点击预订的时候,需要判断是否在ticket_lock已有记录。”
这就是说 :插入ticket_lock之前先需select
如果 select时另外一个人执行了insert,就会出现一张票被重复预定的情况。
对吗 ?
1、悲观封锁
在update前,先select xxxx from xxx for update nowait;
2、乐观封锁
在update前先查出需要被更新记录的所有字段值,然后
update xxx set xxx=xx where col1=xx,col2=xx,col3=xxx .....