向数据库插入数据的时候,需要验证某几个字段的唯一(联合唯一)。以前的做法是通过SELECT查一下数据库里是否存在此数据,如果存在就,直接抛异常。不允许插入。
数据库联合唯一限制以前知道,但因为以前的项目经验告诉我,这种做法不好。所以一直不没用过,就直接用select查的方法。
现在感觉用数据库限制,通过程序报错的这种机制也可以。
ALTER TABLE importorder add UNIQUE(NoA,bagsSeqNo) //通过此语句,把两个关系联合在一起。设置成唯一
如果一次向数据库里插入大量数据,在最后一条报错的话,之前的需要回滚,如果使用select from where id in (1,2,3,4) 先查一下的话。可以省掉插入的时间。
不知道哪种方法效率更高一些,有兴趣的达人可以参入讨论。