Truncate ORA-02266错误:表中的唯一/主键被启用的外部关键字引用
这个错误应该是主键被引用
<1>我们需要先关闭主键的使用
alter table table_name disable primary key cascade;
<2>truncate表
truncate table table_name
<3>开启主键的使用
alter table table_name enable primary key
ORA-02291错误:违反条件约束--未找到父项关键字
比如有表A和表B
A表的的某个字段是主键而B表中的某个字段是外键如果A表中某个字段没有数据而要往B表中插入字段就会出现ORA-002291的错误
这样的情况下可用把B表中这个字段置空或在A表中有值的话也可以向B表中插入数据
实验
创建表A
SQL> create table A(group_id int primarykey not null,name varchar2(20));
Table created.
创建表B
SQL> create table B(user_id int primarykey not null,name varchar2(20),group_id int,
2 constraint fk foreign key(group_id) references A(group_id));
Table created.
向A中插入数据
SQL> insert into A values(1,'oinstall');
1 row created.
向B中插入数据
SQL> insert into B values(1,'oracle',1);
1 row created.
向B中插入数据
SQL> insert into B values(2,'grid',2);
insert into B values(2,'grid',2)
*
ERROR at line 1:
ORA-02291: integrity constraint (SCOTT.FK)violated - parent key not found
向A中插入数据
SQL> insert into A values(2,'dba');
1 row created.
向B中插入数据
SQL> insert into B values(2,'grid',3);
insert into B values(2,'grid',3)
*
ERROR at line 1:
ORA-02291: integrity constraint (SCOTT.FK)violated - parent key not found
向B中插入数据
SQL> insert into B values(2,'grid',2);
1 row created.
SQL>