ホームページ >データベース >mysql チュートリアル >複数の MySQL テーブルからレコードを安全に削除するにはどうすればよいですか?
MySQL マルチテーブルのレコードの安全な削除
次のコードを直接使用して複数のテーブルから行を同時に削除すると、エラーが発生する可能性があります:
<code class="language-sql">DELETE FROM `pets` p, `pets_activities` pa WHERE p.`order` > :order AND p.`pet_id` = :pet_id AND pa.`id` = p.`pet_id`</code>
推奨される解決策は、JOIN ステートメントを使用することです。
<code class="language-sql">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</code>
または、pets_activities
テーブルを参照しながら pets
テーブル内のレコードを削除することもできます。
<code class="language-sql">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</code>
このアプローチでは、FROM
句でエイリアスを使用して削除するテーブルを指定します。これは、参照整合性を伴う複雑なシナリオを扱う場合に特に役立ちます。
以上が複数の MySQL テーブルからレコードを安全に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。