MySQLMySQL 1451

MySQL 1451: Cannot Delete or Update a Parent Row

MySQL 1451 is the foreign key constraint error raised when a DELETE or UPDATE on a parent table would leave orphaned rows in a child table that references it.

Example Query

DELETE FROM customers WHERE id = 1;
-- Fails if orders table has rows with customer_id = 1

Common Causes

  1. 1Deleting a parent record while child records still reference it
  2. 2Updating a primary key value referenced by child rows
  3. 3Missing ON DELETE CASCADE on the foreign key definition

How to Fix It

Delete child rows first, or use ON DELETE CASCADE on the foreign key. To inspect dependencies: SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'customers'. Temporarily disable foreign key checks for bulk deletes: SET FOREIGN_KEY_CHECKS=0.

Need a reliable database?

Try Supabase — free PostgreSQL with a generous free tier. No credit card required.

Get started free →

Got a query causing this error?

Paste it into SQLbuddy and get an instant plain-English explanation with optimization tips.

Analyze My Query →