Først, som en engangs-data-scrubbing-øvelse, skal du slette de forældreløse rækker, f.eks.
DELETE
FROM ReferencingTable
WHERE NOT EXISTS (
SELECT *
FROM MainTable AS T1
WHERE T1.pk_col_1 = ReferencingTable.pk_col_1
);
For det andet, som en engangs skemaændringsøvelse, skal du tilføje ON DELETE CASCADE
henvisningshandling til fremmednøglen på referencetabellen f.eks.
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;
Så for evigt vil rækker i referencetabellerne automatisk blive slettet, når deres referencerække slettes.