Nếu bạn có quyền kiểm soát giản đồ của mình, tôi sẽ đặt giản đồ sử dụng xếp tầng xóa .
Từ bài báo (phần thích hợp hơn được dịch cho ví dụ của bạn)
CREATE TABLE point
(
pt_id integer PRIMARY KEY,
evt_id integer REFERENCES event ON DELETE CASCADE
)
Nếu bạn đã thiết lập các tầng, thì bạn chỉ có thể xóa khỏi bảng sự kiện chính và tất cả các bảng khác sẽ được dọn dẹp tự động
Nếu không, trước tiên bạn cần xóa tất cả các tham chiếu, sau đó xóa bảng chính. Bạn nên thực hiện việc này trong một lần giao dịch để giữ cho dữ liệu nhất quán
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;