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
Lepaskan: 2025-01-19 10:26:10
asal
195 orang telah melayarinya

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:

DELETE FROM `pets` p,
            `pets_activities` pa
      WHERE p.`order` > :order
        AND p.`pet_id` = :pet_id
        AND pa.`id` = p.`pet_id`
Salin selepas log masuk

Anda mungkin menghadapi ralat berikut:

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

Ralat ini berpunca daripada ralat sintaks dalam pemadaman silang jadual. Untuk menyelesaikan masalah ini, gunakan JOIN dalam kenyataan 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
Salin selepas log masuk

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

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
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan