@TOC
非主键项目登录一意制约
最近在客户端登陆数据的时候发现一个主键不冲突但是登录的时候还是发生了一意制约的问题。
首先看一下表结构
主键有【year_id】,【person_id】这两个字段
用DBMS登录两条数据测试
INSERT
INTO nkm_mask.t_thu_persion(
year_id
, person_id
, company_id
, name
, delete_flg
, insertdatetime
, insertuserid
, insertprogramid
, updatedatetime
, updateuserid
, updateprogramid
, deletedatetime
)
VALUES (
2021
, 1000000001
, '1000000002'
, 'test2'
, 0
, '20190330131608691'
, 'sysytem'
, 'sysytem'
, '20190330131608691'
, 'sysytem'
, 'sysytem'
, NULL
);
INSERT
INTO nkm_mask.t_thu_persion(
year_id
, person_id
, company_id
, name
, delete_flg
, insertdatetime
, insertuserid
, insertprogramid
, updatedatetime
, updateuserid
, updateprogramid
, deletedatetime
)
VALUES (
2022
, 1000000001
, '1000000002'
, 'test1'
, 0
, '20190330131608691'
, 'system'
, 'system'
, '20190330131608691'
, 'system'
, 'system'
, NULL
);
执行结果是OK的,数据是可以正常登录上的。
客户端数据登录异常
org.postgresql.util.PSQLException:
ERROR: duplicate key value violates unique constraint
"idx1_t_thu_persion"
查看了一下表结构,发现index的制约设置的有问题。
非主键项目设置了一个制约,导致客户端登录数据的时候,即使主键不冲突,也会发生制约。