Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memadam Baris daripada Berbilang Jadual Pelayan SQL Menggunakan INNER JOIN?

Bagaimana untuk Memadam Baris daripada Berbilang Jadual Pelayan SQL Menggunakan INNER JOIN?

DDD
Lepaskan: 2025-01-07 06:09:41
asal
374 orang telah melayarinya

How to Delete Rows from Multiple SQL Server Tables Using INNER JOIN?

Memadam daripada Berbilang Jadual dengan INNER JOIN dalam SQL Server

Tidak seperti MySQL, SQL Server tidak menyokong pemadaman daripada berbilang jadual menggunakan SERTAI DALAM. Walau bagaimanapun, anda boleh mencapai kesan yang sama dengan penyelesaian berikut:

Langkah 1: Gunakan Jadual Pseudo "Dipadamkan"

Buat jadual sementara yang dipanggil "@deletedIds" untuk menyimpan ID baris yang dipadamkan daripada yang pertama jadual:

begin transaction;

declare @deletedIds table ( id int );

delete from t1
output deleted.id into @deletedIds
from table1 as t1
 inner join table2 as t2
   on t2.id = t1.id
 inner join table3 as t3
   on t3.id = t2.id;
Salin selepas log masuk

Langkah 2: Padam daripada Jadual Seterusnya

Gunakan jadual "@deletedIds" untuk memadam daripada jadual berikutnya:

delete from t2
from table2 as t2
 inner join @deletedIds as d
   on d.id = t2.id;

delete from t3
from table3 as t3 ...
Salin selepas log masuk

Langkah 3: Komitmen Transaksi

Komit transaksi untuk membuat perubahan kekal:

commit transaction;
Salin selepas log masuk

Nota: Anda boleh mengeluarkan deleted.id daripada pernyataan padam kedua jika perlu untuk bergabung dengan jadual ketiga.

Pendekatan Alternatif: Pencetus

Pertimbangkan untuk menggunakan pencetus pada jadual1 yang memadamkan secara automatik daripada jadual2 dan jadual3 apabila baris dipadamkan daripada jadual1. Ini memastikan integriti rujukan dan menghapuskan keperluan untuk pemadaman manual.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Baris daripada Berbilang Jadual Pelayan SQL Menggunakan INNER JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan