Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memindahkan Data dengan Cekap Antara Jadual SQL Berdasarkan Padanan Bersyarat?
Mengalih Data Antara Jadual dengan Padanan Bersyarat
Anda boleh memindahkan data dari satu jadual ke jadual lain dengan cekap berdasarkan kriteria tertentu menggunakan pernyataan SQL. Dalam kes ini, anda ingin mengalihkan semua baris yang sepadan dari Jadual1 ke Jadual2 di mana nama pengguna sama dengan 'X' dan kata laluan sama dengan 'X.'
Pendekatan Berasaskan Transaksi
Kaedah yang paling boleh dipercayai melibatkan penggunaan transaksi untuk memastikan kedua-dua operasi (memasukkan ke dalam Jadual2 dan memadam daripada Jadual1) berlaku sebagai satu unit kerja. Transaksi menjamin integriti data dengan memastikan sama ada kedua-dua operasi berjaya atau tidak digunakan.
SQL Statement
Pernyataan SQL berikut menggunakan transaksi untuk mencapai anda matlamat:
BEGIN TRANSACTION; INSERT INTO Table2 (column1, column2, ...) SELECT column1, column2, ... FROM Table1 WHERE username = 'X' AND password = 'X'; DELETE FROM Table1 WHERE username = 'X' AND password = 'X'; COMMIT;
Penjelasan
Pertimbangan Tambahan
Jika anda ingin menghalang baris padanan baharu daripada dimasukkan ke dalam Jadual1 semasa transaksi, anda boleh menambah syarat tambahan pada pernyataan INSERT menggunakan operator NOT EXISTS:
INSERT INTO Table2 (column1, column2, ...) SELECT column1, column2, ... FROM Table1 WHERE username = 'X' AND password = 'X' AND NOT EXISTS (SELECT 1 FROM Table2 WHERE username = 'X' AND password = 'X');
Ini memastikan bahawa hanya baris padanan unik dimasukkan ke dalam Jadual2.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memindahkan Data dengan Cekap Antara Jadual SQL Berdasarkan Padanan Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!