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
Lepaskan: 2024-12-31 04:56:08
asal
600 orang telah melayarinya

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

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

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

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!

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