以前比较naive,有次同事一定要在表里建唯一约束的时候,我就很纳闷为啥非要在db层面做限制,在自己的业务代码里做啊,就是说入库的时候先查一遍有没有,没有记录的情况再准许入库. 后来发现如果只是自己处理业务代码时先查后入库,并发高时会发生意想不到的后果.. 比如现在表tab里有两个字段fa, fb.业务规定,fa和fb的值只能成对出现一次(好比1,2入库一次,就不能再有一条1,2的记录入库). 当在自己的业务代码里处理避免再次入库时,会这样处理, 步骤一:select 1 from tab wh…