Rumah >pangkalan data >tutorial mysql >Bagaimana Mengendalikan Kekangan Utama Unik Semasa Memasukkan atau Mengemas kini dalam MySQL?

Bagaimana Mengendalikan Kekangan Utama Unik Semasa Memasukkan atau Mengemas kini dalam MySQL?

DDD
DDDasal
2025-01-24 02:52:09871semak imbas

How to Handle Unique Key Constraints When Inserting or Updating in MySQL?

Sisipkan atau kemas kini menggunakan kekangan kunci unik dalam MySQL

Memasukkan atau mengemas kini baris dalam jadual MySQL boleh menjadi rumit apabila anda perlu menangani kekangan kunci pendua. Untuk menyelesaikan masalah ini, MySQL menyediakan pernyataan "INSERT ... ON DUPLICATE KEY UPDATE" serba boleh.

Seperti yang dinyatakan dalam soalan, anda ingin memasukkan baris ke dalam jadual dengan kunci unik. Walau bagaimanapun, jika baris dengan kunci unik yang sama sudah wujud, anda ingin mengemas kini nilainya.

Secara tradisinya, memasukkan baris akan melanggar kekangan kunci unik, mengakibatkan mesej ralat. "INSERT IGNORE" menyekat ralat tetapi tidak melakukan operasi kemas kini.

Penyelesaian: INSERT ... PADA KEMASKINI KUNCI PENDUA

Penyelesaian terletak pada penggunaan sintaks "INSERT ... PADA KEMASKINI KUNCI DUA". Mari pecahkan pertanyaan ini menggunakan contoh yang disediakan:

<code class="language-sql">INSERT INTO table_name (ID, NAME, AGE) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE
NAME="A", AGE=19</code>
  • INSERT INTO: Jika tiada kekunci pendua wujud, masukkan baris baharu ke dalam jadual yang ditentukan ("table_name").
  • (ID, NAMA, UMUR): Menentukan lajur untuk diisi dalam baris baharu.
  • VALUES(1, "A", 19): Menyediakan nilai yang hendak disisipkan.
  • KEMASKINI KUNCI DUA: Bahagian utama. Jika baris dengan nilai yang sama untuk kunci unik (dalam kes ini "ID") sudah wujud dalam jadual, operasi kemas kini akan dicetuskan.
  • NAME="A", AGE=19: Menentukan medan untuk dikemas kini dan nilai baharunya.

Arahan:

Jika baris dengan ID=1 tidak wujud dalam jadual, baris baharu akan disisipkan menggunakan nilai yang disediakan. Walau bagaimanapun, jika baris dengan ID=1 sudah wujud, hanya lajur "NAME" dan "AGE" akan dikemas kini dengan nilai yang ditentukan dan "ID" akan kekal tidak berubah.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Kekangan Utama Unik Semasa Memasukkan atau Mengemas kini dalam 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