Rumah > pangkalan data > tutorial mysql > Mengapa Peningkatan Automatik MySQL Berlaku Salah dengan ON DUPLICATE KEY UPDATE?

Mengapa Peningkatan Automatik MySQL Berlaku Salah dengan ON DUPLICATE KEY UPDATE?

Barbara Streisand
Lepaskan: 2024-11-30 17:32:12
asal
495 orang telah melayarinya

Why Does MySQL's Auto-Increment Misbehave with ON DUPLICATE KEY UPDATE?

Anomali Auto-Tambahan KUNCI PENDUPLICATE

Dalam MySQL, menggunakan ON DUPLICATE KEY UPDATE apabila memasukkan data ke dalam jadual boleh membawa kepada tingkah laku yang tidak dijangka dengan lajur peningkatan automatik. Seperti yang diterangkan dalam soalan, diperhatikan bahawa kenaikan nilai automatik meningkat seperti yang dijangkakan pada sisipan pertama, bagaimanapun, apabila keadaan ON DUPLICATE KEY dicetuskan dan baris baharu dimasukkan, nilai kenaikan automatik kelihatan tidak teratur.

Jawapan kepada isu ini terletak pada cara MySQL mengendalikan KEMASKINI KUNCI DUA. Seperti yang didokumenkan dalam dokumentasi MySQL, semasa operasi ini, MySQL melakukan kemas kini pada baris sedia ada dan bukannya memasukkan baris baharu. Dalam kes lajur kenaikan automatik, penyata INSERT menambah nilai kenaikan automatik sebelum kemas kini digunakan. Walau bagaimanapun, pernyataan KEMASKINI tidak menambah nilai.

Berikut ialah penjelasan ringkas:

  • INSERT cuba untuk memasukkan baris baharu, menambah nilai kenaikan automatik.
  • Keadaan ON DUPLICATE KEY dikesan, mencetuskan kemas kini.
  • Kemas kini menetapkan nilai dalam baris sedia ada, termasuk lajur autokenaikan, kepada nilai yang dinyatakan dalam klausa kemas kini.

Akibatnya, auto- lajur kenaikan dalam baris yang dikemas kini tidak menggambarkan nilai yang dijangkakan yang akan ditetapkan jika baris baharu telah dimasukkan. Perlu diingat bahawa bergantung pada lajur kenaikan automatik untuk tidak mempunyai jurang adalah tidak disyorkan. Jika penomboran jujukan yang ketat adalah penting, anda dinasihatkan untuk melaksanakan logik tersuai menggunakan pencetus atau nilai yang dikira pada output untuk mengekalkan gelagat kenaikan yang diingini.

Atas ialah kandungan terperinci Mengapa Peningkatan Automatik MySQL Berlaku Salah dengan ON DUPLICATE KEY UPDATE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan