Rumah >pangkalan data >tutorial mysql >Bagaimanakah Pelayan SQL Mengendalikan Kunci Pendua Seperti KEMASKINI KUNCI PENDULIK MySQL?

Bagaimanakah Pelayan SQL Mengendalikan Kunci Pendua Seperti KEMASKINI KUNCI PENDULIK MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 09:56:11381semak imbas

How Does SQL Server Handle Duplicate Keys Like MySQL's ON DUPLICATE KEY UPDATE?

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!

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