Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memasukkan atau Mengemas Kini Rekod MySQL Dengan Cekap Menggunakan `PADA KEMASKINI KUNCI PENDUPLICATE`?

Bagaimanakah Saya Boleh Memasukkan atau Mengemas Kini Rekod MySQL Dengan Cekap Menggunakan `PADA KEMASKINI KUNCI PENDUPLICATE`?

Linda Hamilton
Lepaskan: 2024-12-12 22:34:13
asal
912 orang telah melayarinya

How Can I Efficiently Insert or Update MySQL Records Using `ON DUPLICATE KEY UPDATE`?

Pertanyaan MySQL yang cekap dengan "Pada Kemas Kini Kunci Pendua Sama seperti Sisipan"

Untuk mengoptimumkan pertanyaan MySQL yang melibatkan memasukkan atau mengemas kini rekod berdasarkan unik kunci, adalah penting untuk memanfaatkan klausa "Pada Kemas Kini Kunci Pendua". Klausa ini membenarkan anda menentukan tindakan yang harus dilakukan apabila kunci pendua ditemui semasa sisipan.

Apabila memasukkan rekod dengan kunci unik, anda boleh menentukan klausa "Pada Kemas Kini Kunci Pendua" untuk mengemas kini sedia ada medan sekiranya kunci sudah wujud. Ini menghapuskan keperluan untuk menyatakan secara eksplisit semua nilai medan sekali lagi, menawarkan pertanyaan yang lebih ringkas dan cekap. Sebagai contoh, mempertimbangkan pertanyaan MySQL yang diberikan:

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
Salin selepas log masuk

Jika medan "id" mempunyai indeks yang unik, anda boleh mengemas kini rekod sedia ada dengan kunci yang sama menggunakan:

INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) 
ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g)
Salin selepas log masuk

Dalam kes ini, klausa "Pada Kemas Kini Kunci Pendua" mengemas kini medan "a" kepada "g" dengan nilai masing-masing dalam klausa sisipan. Ini memudahkan pertanyaan dengan mengelakkan keperluan untuk mengulangi semua nilai medan secara eksplisit.

Walau bagaimanapun, perlu diingat bahawa jika nilai sedia ada dalam jadual sepadan dengan nilai yang dimasukkan, tindakan kemas kini tidak akan dilakukan. Ini kerana tidak perlu mengemas kini medan jika ia sudah memegang nilai yang dikehendaki.

Untuk mendapatkan semula ID rekod yang dimasukkan atau dikemas kini, anda boleh menggunakan fungsi "LAST_INSERT_ID()". Sintaks khusus untuk mengakses fungsi ini berbeza-beza bergantung pada aplikasi bahagian belakang yang digunakan. Contohnya, dalam LuaSQL, anda boleh menggunakan "conn:getlastautoid()" untuk mendapatkan semula ID yang dijana secara automatik yang terakhir.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan atau Mengemas Kini Rekod MySQL Dengan Cekap Menggunakan `PADA KEMASKINI KUNCI PENDUPLICATE`?. 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