一个关于数据库级别的并发问题

需求:流水表的订单号对于交易A是允许重复的,但是对于交易B是不允许重复的。程序需要部署负载均衡。
设计
交易A可以直接插入数据库
交易B需要先根据订单号去数据库查询下有没有这条数据,没有才执行插入
问题
如果B交易有并发请求的时候(订单号相同)查的时候是没有数据但是查询完之后另一个并发请求插入了数据,然后这个查询的也插入了数据,那就会造成B交易在数据库有重复订单号的情况。
图片说明

这边没人,具体大家看下面这个吧,这个讨论出了一些解决方案。
http://bbs.csdn.net/topics/392079561

求解怎么解决这种问题

对应数据库字段设置唯一索引,对应数据插入用事务,冲突可以进行回滚。