← 개발일지

oracle-fk-error-fix-blog-en



PART 3: ENGLISH BLOG POST


title: "How to Fix ORA-02292 Foreign Key Error" slug: "oracle-fk-error-fix" description: "Learn how to fix ORA-02292 foreign key errors in Oracle. Understand the root cause and follow a fast debugging process to resolve child record issues." date: "2026-04-29" lang: "en" tags: [oracle, sql, database, foreignkey, debugging] category: "backend" published: true draft: false thumbnail: ""

ORA-02292 Foreign Key Error Explained

The ORA-02292 error occurs when a Foreign Key constraint prevents a DELETE or UPDATE operation.

If a parent row is still referenced by child rows, Oracle blocks the operation to maintain data integrity.


Why This Happens

At its core, this error exists to enforce referential integrity.

You cannot delete data that is still being used elsewhere.


Fast Debugging Process

1. Identify the FK relationship

SELECT a.table_name AS child_table,
       c.table_name AS parent_table
FROM user_constraints a
JOIN user_constraints c
  ON a.r_constraint_name = c.constraint_name
WHERE a.constraint_name = 'FK_NAME';

2. Find blocking child records

SELECT *FROM child_tableWHERE fk_column = :id;

If rows exist, they are the direct cause of the error.


3. Fix Options

Option 1: Delete child rows first

DELETE FROM child_table WHERE fk_column = :id;DELETE FROM parent_table WHERE id = :id;

Option 2: Use ON DELETE CASCADE

Automatically removes child rows when the parent is deleted.

ON DELETE CASCADE

⚠️ Use carefully in production environments.


Option 3: Soft Delete (Recommended)

UPDATE parent_table SET deleted = 'Y' WHERE id = :id;

Common Mistake in Application Code

Wrong order

deleteParent(id);deleteChild(id);

Correct order

deleteChild(id);deleteParent(id);

Key Takeaway

When you see ORA-02292:

Always check the child table first.

This simple rule dramatically reduces debugging time.