Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memadamkan Baris Merentasi Pelbagai Jadual dengan betul dalam MySQL?

Bagaimana untuk Memadamkan Baris Merentasi Pelbagai Jadual dengan betul dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2025-01-19 10:26:10181semak imbas

How to Correctly Delete Rows Across Multiple Tables in MySQL?

Pemadaman silang jadual MySQL: penyelesaian masalah ralat sintaks

Dalam MySQL, memadamkan baris daripada berbilang jadual secara serentak memerlukan sintaks pertanyaan khas. Apabila cuba melaksanakan pertanyaan padam berikut:

<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>

Anda mungkin menghadapi ralat berikut:

<code>Uncaught Database_Exception [ 1064 ]: You have an error in your SQL syntax; check the manual...</code>

Ralat ini berpunca daripada ralat sintaks dalam pemadaman silang jadual. Untuk menyelesaikan masalah ini, gunakan JOIN dalam kenyataan DELETE:

<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>

Sebagai alternatif, untuk memadam hanya daripada jadual pets_activities, anda boleh menggunakan:

<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>

Dengan menggunakan pernyataan JOIN dengan cara ini, anda boleh melaksanakan operasi pemadaman silang jadual dengan cekap dalam MySQL. Perlu diingat bahawa pendekatan ini juga berfungsi untuk pemadaman satu jadual dengan integriti rujukan.

Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Baris Merentasi Pelbagai Jadual dengan betul dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn