现有一张u_ps的车位信息表,对应每个小区的车位id ps_id自增长,每个车位又对应车位编号num,车位id由自增长,车位编号可以根据自己小区情况手动添加设置,但是不能重复,车位编号不能重复。这就需要在新增车位信息的时候代码检验新增的该num在u_ps表中是否存在,存在则抛出异常,不存在则做插入操作。
不同的小区community_id中车位num可以重复,如果分开设计表设置唯一约束是可行的,但是我们的需求是将所有的小区车位信息放在同一个表中,这就涉及到在插入一条数据的时候需要判断是否是同一小区id,在community_id相同的情况下num不能重复。
我们的主键为车位id ps_id,我们的思路是当插入一条数据,先查询车位信息表,遍历新的数据中的num是否存在,或者说新增的num在表中是否为空,是则抛出异常,否则执行插入操作。 这是代码逻辑。
在sql中最直接的方法就是设置唯一索引(这跟主键并不冲突)
我们在不修改sql的情况下利用代码逻辑来实现
sql语句是最基本的插入语句:
这是我的工具类下的isEmpty方法:
因篇幅问题不能全部显示,请点此查看更多更全内容