JOIN
を使用する DELETE
で ステートメント。
DELETE p, pa
FROM pets p
JOIN pets_activities pa ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
または、...
を使用することもできますDELETE pa
FROM pets_activities pa
JOIN pets p ON pa.id = p.pet_id
WHERE p.order > :order
AND p.pet_id = :pet_id
... pets_activities
からのみ削除する
これ を参照してください 。
単一のテーブルを削除する場合でも、参照整合性を使用する場合は、EXISTS
を使用する他の方法があります。 、NOT EXISTS
、IN
、NOT IN
など。ただし、FROM
の前にエイリアスを使用して削除するテーブルを指定する上記のテーブル 句を使用すると、かなり狭い場所から簡単に抜け出すことができます。私はEXISTS
に連絡する傾向があります 99%のケースで、このMySQL構文が1日かかる1%があります。