Jika Anda memiliki kendali atas skema Anda, saya akan membuat skema menggunakan cascading menghapus .
Dari artikel (bagian yang lebih relevan diterjemahkan untuk contoh Anda)
CREATE TABLE point
(
pt_id integer PRIMARY KEY,
evt_id integer REFERENCES event ON DELETE CASCADE
)
Jika Anda telah mengatur kaskade, maka Anda cukup menghapus dari tabel acara utama dan semua tabel lainnya akan dibersihkan secara otomatis
Jika tidak, Anda harus menghapus semua referensi terlebih dahulu, lalu Anda menghapus tabel utama. Anda harus melakukan ini dalam satu transaksi agar data tetap konsisten
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;