Rumah >pangkalan data >tutorial mysql >Bagaimanakah Pelayan SQL Mengendalikan Kunci Pendua Seperti KEMASKINI KUNCI PENDULIK MySQL?
Adakah SQL Server Menawarkan Setara dengan MySQL ON DUPLICATE KEY UPDATE?
Dalam MySQL, ON DUPLICATE KEY UPDATE membolehkan pengendalian yang lancar bagi nilai kunci pendua dengan mengemas kini baris sedia ada dan bukannya memasukkan baris baharu. Ciri ini amat berguna apabila mengurus kekangan kunci unik atau utama.
SQL Server menyediakan fungsi yang setanding melalui pernyataan MERGEnya. Pernyataan MERGE menggabungkan operasi INSERT dan UPDATE ke dalam satu arahan, membenarkan pembangun memasukkan baris baharu atau mengemas kini baris sedia ada berdasarkan kriteria yang ditentukan.
Sebagai contoh, pernyataan MERGE berikut menunjukkan cara memasukkan baris baharu ke dalam jadual METER_DATA hanya jika gabungan rtu_id dan time_local belum wujud. Jika pendua wujud, ia mengemas kini baris:
MERGE INTO MyBigDB.dbo.METER_DATA WITH (HOLDLOCK) AS target USING (SELECT 77748 AS rtu_id ,'12B096876' AS meter_id ,56112 AS meter_reading ,'20150602 00:20:11' AS time_local) AS source (rtu_id, meter_id, meter_reading, time_local) ON (target.rtu_id = source.rtu_id AND target.time_local = source.time_local) WHEN MATCHED THEN UPDATE SET meter_id = '12B096876' ,meter_reading = 56112 WHEN NOT MATCHED THEN INSERT (rtu_id, meter_id, meter_reading, time_local) VALUES (77748, '12B096876', 56112, '20150602 00:20:11');
Klausa WHEN MATCHED melaksanakan operasi kemas kini pada baris sedia ada yang memenuhi syarat yang ditentukan. Klausa WHEN NOT MATCHED melaksanakan operasi sisipan untuk baris baharu yang tidak memenuhi syarat.
Dengan menggunakan pernyataan MERGE, SQL Server menyediakan ciri komprehensif yang serupa dengan MySQL ON DUPLICATE KEY UPDATE, yang membolehkan pengendalian yang cekap bagi nilai kunci pendua.
Atas ialah kandungan terperinci Bagaimanakah Pelayan SQL Mengendalikan Kunci Pendua Seperti KEMASKINI KUNCI PENDULIK MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!