Innanzitutto, come esercizio di ripulitura dei dati una tantum, elimina le righe orfane, ad es.
DELETE
FROM ReferencingTable
WHERE NOT EXISTS (
SELECT *
FROM MainTable AS T1
WHERE T1.pk_col_1 = ReferencingTable.pk_col_1
);
In secondo luogo, come esercizio di modifica dello schema una tantum, aggiungi il ON DELETE CASCADE
azione referenziale alla chiave esterna nella tabella di riferimento, ad es.
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;
Quindi, per sempre, le righe nelle tabelle di riferimento verranno automaticamente eliminate quando viene eliminata la riga di riferimento.