PROBLEM:

SQL> truncate table VIETDBA.AAF_USER;
truncate table VIETDBA.AAF_USER
*
ERROR at line 1:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys

Ezoic

 

SOLUTION:

Ezoic

Khóa chính của bảng (đang cần truncate) có ràng buộc (constraint) là khóa ngoài của 1 bảng con. Kiểm tra constraint khóa ngoài tên là gì:

set lines 2999
COL CHILD_TABLE FOR A20
col CONSTRAINT_NAME for a26
col owner form a10
col FK_column form a15
col table_name form a30
select b.owner, b.table_name child_table,
c.column_name FK_column, b.constraint_name
from dba_constraints a, dba_constraints b, dba_cons_columns c
where a.owner=b.r_owner
and b.owner=c.owner
and b.table_name=c.table_name
and b.constraint_name=c.constraint_name
and a.constraint_name=b.r_constraint_name
and b.constraint_type='R'
and a.owner='&owner'
and a.table_name='&TABLE_NAME'
and a.CONSTRAINT_TYPE='P';
OWNER CHILD_TABLE FK_COLUMN CONSTRAINT_NAME
---------- -------------------- --------------- --------------------------
VIETDBA AAF_USER_MEMBER MEMBER AAF_USER_FK1

Disable constraint sau đó truncate lại:

SQL> alter table VIETDBA.AAF_USER_MEMBER disable constraint AAF_USER_FK1;
Table altered. SQL> truncate table VIETDBA.AAF_USER;
Table truncated.