在Oracle中插入数据时,可能由于不符合约束而无法插入成功。
将报类似于如下的错误信息:
SQL Error: ORA-02291: 违反完整约束条件 (TEST.FK_KB_TEST_ID) - 未找到父项关键字
02291. 00000 - "integrity constraint (%s.%s) violated - parent key not found"
*Cause: A foreign key value has no matching primary key value.
*Action: Delete the foreign key or add a matching primary key.
这时可以通过错误信息中的约束名FK_KB_TEST_ID查看约束规则:
select * from user_constraints where constraint_name = upper('FK_KB_TEST_ID');
执行后显示有如下列的信息:
OWNER:当前约束的所有者;
CONSTRAINT_NAME:约束名称,如果用户没有定义该约束名称,将自动产生一个唯一的名称,形如SYS_C00107267,条件约束不能自定义名字。
CONSTRAINT_TYPE:约束类型
C (check constraint on a table)条件约束
P (primary key)主键约束
U (unique key)唯一性约束
R (referential integrity)外键约束
V (with check option, on a view)作用于视图的with check optio