Rumah >pangkalan data >tutorial mysql >INSERT ON DUPLICATE KEY: Bagaimana Saya Boleh Abaikan Sisipan Duplikat dalam SQL?
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!