Bạn không thể xóa khỏi bảng miễn là các bản ghi phụ thuộc vẫn tồn tại trong bảng khác. Trong trường hợp của bạn, sự phụ thuộc diễn ra như thế này
Transaction <- Purchase -> Item
Vì vậy, trước tiên bạn cần xóa mọi giao dịch mua trước khi có thể xóa giao dịch.
Để thay thế cho cách tiếp cận hai bước đó, tôi khuyên bạn nên thiết lập ON DELETE CASCADE
ràng buộc
và đi với điều này:
DELETE
Transaction
WHERE
Transaction_ID IN (
SELECT
Transaction_ID
FROM
Purchase INNER JOIN Item ON Item.Item_ID = Purchase.Item_ID
WHERE
Item.Client_ID = <your Client ID here>
)
Lưu ý rằng thao tác này sẽ xóa mọi Transaction
(và thông qua CASCADE, bất kỳ Purchase
) nơi có Item
phụ thuộc với Client_ID
phù hợp , bất kể có bất kỳ khác các mục trong đó. Nếu đây không phải là điều bạn muốn, câu hỏi cần được tinh chỉnh.