I overlooked the operations required to truncate a parent table. I thought I only need to
truncate all of its child tables first, then truncate itself. The following test demonstrated
that constraints have to be taken care of in addition:
SQL> @fk_child
Enter value for 1: z9xxx94
Enter value for 2: p
----- Children of z9xxx94 p -------
Owner Table Name Constraint Name Ref Constraint Name Status
-------------- ----------------- ------------------ ------------------------ --------
Z9xxx94 C C_FK P_PK ENABLED
SQL> truncate table c;
Table truncated.
SQL> truncate table p;
truncate table p
*
ERROR at line 1:
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
We have to disable child table FK constraint first:
SQL> alter table c modify constraint C_FK disable;
Table altered.
SQL> truncate table p;
Table truncated.
SQL> alter table c modify constraint C_FK enable;
Table altered.
SQL> select count(*) from c;
COUNT(*)
----------
0
SQL> select count(*) from p;
COUNT(*)
----------
0
Everything Changes
1 week ago
No comments:
Post a Comment