Rumah >pangkalan data >tutorial mysql >INSERT ON DUPLICATE KEY: Bagaimana Saya Boleh Abaikan Sisipan Duplikat dalam SQL?

INSERT ON DUPLICATE KEY: Bagaimana Saya Boleh Abaikan Sisipan Duplikat dalam SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 03:35:38496semak imbas

INSERT ON DUPLICATE KEY: How Can I Ignore Duplicate Inserts in SQL?

INSERT ON DUPLICATE KEY: Mengekalkan Integriti Data

Dalam pengurusan pangkalan data, adalah penting untuk mengendalikan senario yang melibatkan data pendua dengan cekap. Satu pilihan adalah untuk menghalang sisipan pendua dengan menentukan kunci unik. Walau bagaimanapun, dalam beberapa kes, mungkin wajar untuk mengabaikan sisipan pendua tanpa menjana ralat.

Memandangkan struktur jadual yang disediakan dan keperluan untuk menambah baris hanya jika kunci tidak wujud, isu berikut timbul :

Masalah: Adakah terdapat sintaks yang serupa dengan "INSERT ... ON DUPLICATE KEY TAK BUAT APA-APA"?

Jawapannya adalah afirmatif:

Penyelesaian 1: INSERT ... PADA KEMASKINI KUNCI PENDUA>

Sintaks ini memastikan tiada kemas kini dilakukan pada baris, walaupun id ditetapkan semula kepada dirinya sendiri. Ini secara berkesan mengakibatkan pengabaian sisipan pendua.

Walau bagaimanapun, jika ralat (cth., ralat penukaran, ralat kunci asing) atau potensi keletihan medan autoincrement tidak membimbangkan, pendekatan alternatif boleh digunakan:

Penyelesaian 2: MASUKKAN ABAIKAN KE DALAM ...

Sintaks ini mengabaikan baris sepenuhnya yang akan mengakibatkan ralat kunci pendua, dengan berkesan mencapai gelagat yang diingini untuk menambah baris jika ia belum wujud dan mengabaikannya secara senyap sebaliknya.

Atas ialah kandungan terperinci INSERT ON DUPLICATE KEY: Bagaimana Saya Boleh Abaikan Sisipan Duplikat dalam SQL?. 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