-- Fix 1452: empty orphan prc_order_ext then add FK to prc_order -- Confirm DB = bms, then run in order. SELECT DATABASE() AS current_db; SELECT COUNT(*) AS ext_rows_before FROM prc_order_ext; SELECT COUNT(*) AS order_rows FROM prc_order; TRUNCATE TABLE prc_order_ext; SELECT COUNT(*) AS ext_rows_after FROM prc_order_ext; -- Drop failed/partial FK name if present (ignore error if missing) SET @fk := ( SELECT CONSTRAINT_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prc_order_ext' AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND CONSTRAINT_NAME = 'fk_order_ext_order' LIMIT 1 ); SET @sql := IF( @fk IS NOT NULL, 'ALTER TABLE prc_order_ext DROP FOREIGN KEY fk_order_ext_order', 'SELECT 1' ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; ALTER TABLE prc_order_ext ADD CONSTRAINT fk_order_ext_order FOREIGN KEY (order_id) REFERENCES prc_order (order_id) ON DELETE CASCADE;