sql >> データベース >  >> RDS >> Mysql

[MySQL]:2つの依存テーブルから行を削除します

    依存レコードが別のテーブルにまだ存在する限り、テーブルから削除することはできません。あなたの場合、依存関係は次のようになります

    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その他があるかどうかに関係なく その中のアイテム。これが希望どおりでない場合は、質問を絞り込む必要があります。



    1. PythonSQLAlchemy-MySQLサーバーがなくなりました

    2. phpインクルードエラーがパスを見つけられません

    3. Windows用のMySQLコマンドラインクライアント

    4. phpを使用してmysqlの日付(datetime)をより適切な日付形式に変換します