Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan atau Mengemas kini Baris MySQL Berdasarkan Kunci Unik?
Pertimbangkan senario di mana anda menyasarkan untuk menambah data pada jadual tetapi menghadapi cabaran untuk memasukkan baris baharu semasa mengemas kini sedia ada yang berdasarkan keunikan lajur tertentu (datenum).
Untuk menangani keperluan ini, anda boleh pada mulanya cuba menggunakan pernyataan KEMASKINI seperti yang ditunjukkan dalam soalan; namun, pendekatan ini terhad kepada mengubah suai baris sedia ada sahaja. Untuk senario di mana nilai datenum tidak wujud dalam jadual, tiada tindakan akan diambil.
Untuk mencapai kedua-dua sisipan dan kemas kini berdasarkan lajur unik datenum, MySQL menyediakan INSERT ... PADA KEMASKINI KUNCI DUPLICATE sintaks. Sintaks ini membolehkan anda mentakrifkan operasi sisipan yang mengemas kini baris secara automatik jika kunci pendua ditemui.
Berikut ialah versi dipertingkatkan kenyataan KEMASKINI menggunakan sintaks INSERT ... PADA sintaks KEMASKINI KUNCI DUA:
INSERT INTO AggregatedData (datenum,Timestamp) VALUES ("734152.979166667","2010-01-14 23:30:00.000") ON DUPLICATE KEY UPDATE Timestamp=VALUES(Timestamp)
Dalam pernyataan ini, tarikh lajur kunci unik digunakan dalam klausa INSERT, manakala nilai yang dikemas kini untuk Cap masa ditentukan dalam klausa ON DUPLICATE KEY UPDATE. Ini memastikan bahawa jika baris dengan tarikhnum yang sama sudah wujud, lajur Cap Waktu akan dikemas kini dengan nilai yang disediakan, manakala lajur lain kekal tidak berubah.
Dengan menggunakan teknik ini, anda mencapai kedua-dua sisipan baris baharu dan kemas kini baris sedia ada dalam jadual MySQL anda berdasarkan lajur kunci unik.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan atau Mengemas kini Baris MySQL Berdasarkan Kunci Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!