Jeśli masz kontrolę nad swoim schematem, użyję kaskadowania schematu usuwa .
Z artykułu (bardziej trafna część przetłumaczona na przykład)
CREATE TABLE point
(
pt_id integer PRIMARY KEY,
evt_id integer REFERENCES event ON DELETE CASCADE
)
Jeśli masz skonfigurowane kaskady, możesz po prostu usunąć z głównej tabeli wydarzeń, a wszystkie inne tabele zostaną automatycznie wyczyszczone
W przeciwnym razie musisz najpierw usunąć wszystkie odniesienia, a następnie usunąć główną tabelę. Powinieneś to zrobić w jednej transakcji, aby zachować spójność danych
BEGIN;
DELETE FROM trace WHERE EXISTS
(SELECT 1 FROM point WHERE evt_id = 1139 AND trace.pt_id = point.pt_id);
DELETE FROM point where evt_id = 1139;
DELETE FROM magnitude where evt_id = 1139;
DELETE FROM event where evt_id = 1139;
COMMIT;