增加一个自增列作为主键列
主键要自增。或者guid或者其他的唯一建生成算法。
你的客户编号要当成一个业务字段。不能当主键。
楼上说的都对,但是你始终还是要明白一点,并发冲突。
使用楼上的方法可以保存了,但是你的两个客户编号就相同了,这是你要想办法解决的事。
你有什么办法解决吗,哥哥
2L正解 我只是进来看看
把自增id当做主键,客户编号要另设一个字段,而且客户编号不能当做主键,又要必须绝对唯一。你的错误提示就是因为你把客户编号当成了主键,而主键又是唯一的,但是你又没有让客户编号做到唯一。
怎么解决呢,哥哥
我新增一个字段当主键吧,把客户编号不当主键,但是,如果我又多台电脑同时注册,怎样避免这个问题呢,添加是可以了,但是2个编号会重复吧,也就是楼上的楼上,爱编程的大哥说的并发吧!
@男人要爽: 对,楼上说的并发,所导致的结果也就是会生成至少两个同样的客户编号,这种情况是你给的值不唯一造成的。最简单的办法就是使用guid来做客户编号的值。
string guidid=Guid.NewGuid().ToString();
你先这样用,如果重复,再说。
方法上面添加一个悲观锁吧
如下:
//@Lock(LockModeType.PESSIMISTIC_WRITE)