Nemůžete odstranit z tabulky, dokud závislé záznamy stále existují v jiné tabulce. Ve vašem případě bude závislost vypadat takto
Transaction <- Purchase -> Item
Než budete moci smazat transakce, musíte nejprve smazat všechny nákupy.
Jako alternativu k tomuto dvoufázovému přístupu bych doporučil nastavit ON DELETE CASCADE
omezení
a pokračujte tímto:
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>
)
Pamatujte, že tím smažete všechny Transaction
(a prostřednictvím CASCADE jakýkoli Purchase
), kde je závislá Item
s odpovídajícím Client_ID
, bez ohledu na to, zda existují nějaké jiné položky v něm. Pokud to není to, co chcete, je třeba otázku upřesnit.