由于在做压力测试,同一时间占用的问题。

两个用户同时下同一时间的订单,需要增加校验,第一个能保存的用户保存,第二个就不能让保存了。

问题是通过代码,怎么都做不到毫秒级校验,所以解决办法就只能是通过数据库的唯一校验了。

首先是把指定的两个字段增加唯一约束,我的场景是选择的美发师和预约的时间两个字段

ALTER TABLE PaasOLT_Order ADD CONSTRAINT BarberTimeUni unique(BarberId,ServiceTime)

第一个语句就碰壁了,报错

真尴尬,好奇怪的报错,经过调查发现

想要设置成唯一性约束的字段,不能是NVARCHAR(MAX)的,索引的键不能超过 900字节的总大小。将数据类型更改为 NVARCHAR(450)

好吧,那就改下吧

ALTER TABLE PaasOLT_Order ALTER COLUMN BarberId nvarchar(32) NULL;

继续尴尬,还是报错

这个就比较好理解了,就跟你在后期修改一个字段为非空字段的时候,得保证这个列的值都不能是null,并且也不能重复。

至于解决这个问题,就得给现有的数据改成非空。

update PaasOLT_Order set BarberId = (select id from sysUser su where su.truename = paasolt_order.servicename)
where BarberId is null update PaasOLT_Order set BarberId = Id
where BarberId is null update PaasOLT_Order set ServiceTime = CONVERT(varchar(100), CreateTime, 120)
where ServiceTime is null

空的问题解决了,还有之前垃圾数据,有重复的。

再处理下,把之前重复的数据清掉

最新文章

  1. Fragment
  2. javascript类型系统——undefined和null
  3. ssh(安全外壳层)
  4. LoadRunner执行过程报错“Failed to connect to server "xxx.xxx.xxx.xxx:xx":[10060] connetion time out”
  5. Unity3D Script KeynoteII
  6. Apache+lvs高可用+keepalive(主从+双主模型)
  7. 动态使用webservice,以及含有ref类型的参数的问题
  8. mina变长帧处理
  9. Openfire开发广播服务接口,支持离线广播消息
  10. [置顶] xamarin android toolbar(踩坑完全入门详解)
  11. Ubuntu 系统学习
  12. video视频在本地可以播放,在服务器上不可以播放
  13. 求矩形的周长(线段树+扫描线) Picture POJ - 1177
  14. 最新 mysql登录报错“Access denied for user 'root'@'localhost' (using password: NO”的处理方法
  15. android 管理fragment
  16. Android-系统绘图真相
  17. 性能调优-CPU方面,内存方面
  18. jsonp_百度联想
  19. halcon 使用elliptic_axis计算规则矩形角度
  20. docker的安装以及jdk和tomcat的环境配置

热门文章

  1. 关于JS中array对象的push( )
  2. 停课day2
  3. [NOIP2012] 文化之旅 dfs
  4. HDU 多校对抗赛第二场 1004 Game
  5. Socket和ServerSocket学习笔记
  6. vue与node模版引擎的渲染标记{{}}(双花括号)冲突
  7. 创建Maven项目出现:An internal error occurred during: "Retrieving archetypes:". Java heap space 错误解决办法
  8. Tomcat部署时war和war exploded区别及验证
  9. 【洛谷 P1631】 序列合并 (堆)
  10. Extjs3.4 合并单元格