Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh MASUKKAN KE DALAM atau KEMASKINI Baris Pangkalan Data Dengan Cekap Berdasarkan Dua Syarat?

Bagaimanakah Saya Boleh MASUKKAN KE DALAM atau KEMASKINI Baris Pangkalan Data Dengan Cekap Berdasarkan Dua Syarat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-31 04:56:08605semak imbas

How Can I Efficiently INSERT INTO or UPDATE a Database Row Based on Two Conditions?

MASUKKAN KE DALAM atau KEMASKINI dengan Dua Syarat: Penyelesaian Yang Cekap

Tugas memasukkan atau mengemas kini baris dalam pangkalan data berdasarkan dua keadaan boleh mencabar, terutamanya apabila mencari penyelesaian yang cekap. Masalah ini amat berleluasa apabila berurusan dengan jadual di mana baris baharu terus dijana dengan nama dan tarikh pendua.

Penyelesaian: INSERT INTO ON DUPLICATE KEY UPDATE

Penyelesaian optimum untuk masalah ini ialah INSERT INTO ON DUPLICATE KEY UPDATE statement. Pernyataan ini membenarkan sisipan baris baharu jika ia belum wujud dan mengemas kini baris sedia ada jika ada. Untuk menggunakan pernyataan ini, jadual mesti mempunyai kunci unik (seperti kunci komposit) untuk mengesan konflik semasa operasi sisipan.

Contoh Penggunaan

Pertimbangkan jadual dengan yang berikut skema:

CREATE TABLE myThing (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name INT NOT NULL,
    values1 INT NOT NULL,
    values2 INT NOT NULL,
    dates DATE NOT NULL,
    UNIQUE KEY (name, dates) -- This unique key is crucial.
);

Dengan persediaan ini, penyataan berikut akan memasukkan baris baharu jika gabungan nama dan tarikh tidak wujud, atau mengemas kini baris sedia ada jika:

INSERT INTO myThing (name, values1, values2, dates)
VALUES (777, 1, 1, '2015-07-11')
ON DUPLICATE KEY UPDATE values2=values2+1;

Contoh Keputusan

Melaksanakan pernyataan sisipan berbilang kali dengan nama dan gabungan tarikh yang sama akan mengemas kini lajur nilai2, seperti yang dilihat di bawah:

| id | name | values1 | values2 | dates      |
| --- | --- | --- | --- | --- |
| 1 | 777 | 1 | 4 | 2015-07-11 |

Kesimpulan

The INSERT INTO ON DUPLICATE KEY UPDATE statement menyediakan penyelesaian yang sangat cekap untuk menguruskan sisipan dan kemas kini berdasarkan pelbagai syarat. Dengan mentakrifkan kunci unik, pendekatan ini memastikan entri pendua dikendalikan dengan sewajarnya, menghapuskan keperluan untuk prosedur tersimpan yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh MASUKKAN KE DALAM atau KEMASKINI Baris Pangkalan Data Dengan Cekap Berdasarkan Dua Syarat?. 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