Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memindahkan dan Memadam Baris SQL dengan Cekap Berdasarkan Kriteria Padanan?

Bagaimana untuk Memindahkan dan Memadam Baris SQL dengan Cekap Berdasarkan Kriteria Padanan?

DDD
Lepaskan: 2024-12-16 18:09:16
asal
158 orang telah melayarinya

How to Efficiently Transfer and Delete SQL Rows Based on Matching Criteria?

Memindahkan Data: Mengalihkan Baris dari Satu Jadual SQL ke Jadual yang Lain

Isu Awal:

Pengguna bertujuan untuk memindahkan data dari satu jadual SQL ke jadual lain berdasarkan kriteria padanan tertentu. Dalam kes khusus ini, pertanyaan memerlukan mengalihkan semua baris dari Jadual1 ke Jadual2 yang memenuhi syarat "nama pengguna = 'X'" dan "kata laluan = 'X'." Selepas itu, baris ini hendaklah dipadamkan daripada Jadual1.

Penyelesaian Teknikal:

Untuk melaksanakan pemindahan data ini dengan cekap, proses dua langkah boleh digunakan dalam satu SQL transaksi. Ini melibatkan sisipan awal dan pemadaman seterusnya:

BEGIN TRANSACTION;
INSERT INTO Table2 (<columns>)
SELECT <columns>
FROM Table1
WHERE <condition>;

DELETE FROM Table1
WHERE <condition>;

COMMIT;
Salin selepas log masuk

Pertimbangan Tambahan:

Untuk kes di mana rekod baharu yang sepadan dengan kriteria yang ditentukan mungkin ditambahkan pada Jadual1 antara proses penyisipan dan pemadaman, pertanyaan yang lebih terperinci boleh dibuat digunakan:

BEGIN TRANSACTION;
INSERT INTO Table2 (<columns>)
SELECT <columns>
FROM Table1
WHERE <condition> AND NOT EXISTS (SELECT 1 FROM Table2 WHERE <condition>);

DELETE FROM Table1
WHERE <condition>;

COMMIT;
Salin selepas log masuk

Tambahan ini memastikan bahawa hanya baris padanan asal daripada Jadual1 dipindahkan ke Jadual2 dan seterusnya dialih keluar daripada Jadual1.

Atas ialah kandungan terperinci Bagaimana untuk Memindahkan dan Memadam Baris SQL dengan Cekap Berdasarkan Kriteria Padanan?. 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