依存レコードが別のテーブルにまだ存在する限り、テーブルから削除することはできません。あなたの場合、依存関係は次のようになります
Transaction <- Purchase -> Item
したがって、トランザクションを削除する前に、まず購入を削除する必要があります。
この2段階のアプローチの代わりに、 ON DELETE CASCADE
制約
そしてこれで行く:
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>
)
これにより、Transaction
が削除されることに注意してください (そして、CASCADEを介して、任意のPurchase
)依存するItem
がある場合 一致するClient_ID
、その他があるかどうかに関係なく その中のアイテム。これが希望どおりでない場合は、質問を絞り込む必要があります。