ORA-02449 Oracle Drop Table Error
Sometimes when dropping a table in Oracle database by executing DROP TABLE SQL statement, Oracle may return the error ORA-02449 as below:
ORA-02449: unique/primary keys in table referenced by foreign keys
The Oracle error is caused by the attempt to drop a table with unique or primary keys referenced by foreign keys in another table, or in other word, the table that is referenced as a parent table by a foreign key constraint in a parent-child relationship that established between two tables through a foreign key. Oracle does not allow to drop tables referenced by foreign keys of other tables without specifying the CASCADE CONSTRAINTS option in the DROP TABLE statement, or to drop the parent table without first removing the foreign key.
The solution and workaround for the error when you want to drop tables referenced by child tables, is to use the CASCADE CONSTRAINTS option in the DROP TABLE statement. For example:
DROP TABLE table_name CASCADE CONSTRAINTS;
The CASCADE CONSTRAINTS option in the DROP TABLE SQL statement will drop the FOREIGN KEY constraints of the child tables referenced.
Alternatively, you can manually drop and remove the foreign key key constraints in other tables before performing the DROP TABLE operations on the parent table, drop the foreign key constraints in other tables. To check what constraints are referencing a table in Oracle, use the following command:
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = “table_name“;
To drop and delete the user constraints in Oracle use the following command in SQL*Plus, Toad or other SQL tools:
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
Related Articles
- ORA-00942 Table or View Does Not Exist Oracle Error
- Delete, Remove or Drop Oracle Stored Packages with Drop Package
- Easily Duplicate, Copy or Backup Tables in Oracle, PostgreSQL, DB2 and SQLite with Create Table As SQL
- Oracle ORA-14074 Create or Add New Partition Fails Error
- Create, Add or Split Oracle Database Partition Fails with ORA-14080 Error
- Oracle EXP-00091 Error When Export Database
- Create New Table by Selecting Data from Other Tables with CREATE TABLE AS
- Oracle Database Import Error 3113/3114
- Oracle PL/SQL ORA-00947 Not Enough Values Error
- How to Remove and Drop Datafiles from Tablespace in Oracle Database










































April 7th, 2009 18:56
If you need to recreate a table you do not have to drop constraints. As an alternative you can disable constraints and then enable them back again.
The correct select statement to see which foreign keys reference the primary key of the parent table is as follows:
SELECT TABLE_NAME, CONSTRAINT_NAME
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_TYPE = ‘R’
AND R_CONSTRAINT_NAME = parent_table_primary_key;
You can use EXECUTE IMMEDIATE to disable constraints without necessarily dropping them.
July 24th, 2008 13:21
Great! The information provided is very helpful. It seems to be simple but really halps an lot. Thanks again.
July 3rd, 2008 06:30
Constrangimentos? Orra, meu revisa essa tradução aí e testa antes de postar!!! Se não seja honesto e indica o link de onde pegou!!!
February 8th, 2007 18:51
what if after dropping the table using the query blow you want again all those constraints.
DROP TABLE table_name CASCADE CONSTRAINTS;
please tell the query if u knows.