En primer lugar, como ejercicio único de depuración de datos, elimine las filas huérfanas, p.
DELETE
FROM ReferencingTable
WHERE NOT EXISTS (
SELECT *
FROM MainTable AS T1
WHERE T1.pk_col_1 = ReferencingTable.pk_col_1
);
En segundo lugar, como un ejercicio único de alteración del esquema, agregue ON DELETE CASCADE
acción referencial a la clave externa en la tabla de referencia, p.
ALTER TABLE ReferencingTable DROP
CONSTRAINT fk__ReferencingTable__MainTable;
ALTER TABLE ReferencingTable ADD
CONSTRAINT fk__ReferencingTable__MainTable
FOREIGN KEY (pk_col_1)
REFERENCES MainTable (pk_col_1)
ON DELETE CASCADE;
Luego, para siempre, las filas en las tablas de referencia se eliminarán automáticamente cuando se elimine la fila a la que se hace referencia.