Ако имате контрол върху вашата схема, бих направил схемата да използва каскадно изтрива .
От статията (по-подходящата част е преведена за вашия пример)
CREATE TABLE point
(
pt_id integer PRIMARY KEY,
evt_id integer REFERENCES event ON DELETE CASCADE
)
Ако сте настроили каскади, тогава можете просто да изтриете от основната таблица на събитията и всички останали таблици ще бъдат изчистени автоматично
В противен случай първо трябва да изтриете всички препратки, след което да изтриете основната таблица. Трябва да направите това в една транзакция, за да поддържате данните последователни
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;