Rumah pangkalan data tutorial mysql Mysql中Insert into xxx on duplicate key update问题_MySQL

Mysql中Insert into xxx on duplicate key update问题_MySQL

Jun 01, 2016 pm 01:23 PM
Rekod

bitsCN.com 例如,如果列a被定义为unique,并且值为1,则下列语句有同样的效果,也就是说一旦出入的记录中存在a=1的情况,直接更新c = c + 1,而不执行c = 3的操作。

insert into table(a, b, c) values (1, 2, 3) on duplicate key
update c = c + 1;1 update table set c = c + 1 where a = 1;

另外值得一提的是,这个语句知识mysql中,而标准sql语句中是没有的。

INSERT INTO .. ON DUPLICATE KEY更新多行记录

如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:


INSERT INTO TABLE (a,b,c)
VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;

如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。

如果你想了解更多关于INSERT INTO .. ON DUPLICATE KEY的功能说明,详见MySQL参考文档:13.2.4. INSERT语法

现在问题来了,如果INSERT多行记录, ON DUPLICATE KEY UPDATE后面字段的值怎么指定?要知道一条INSERT语句中只能有一个ON DUPLICATE KEY UPDATE,到底他会更新一行记录,还是更新所有需要更新的行。这个问题困扰了我很久了,其实使用VALUES()函数一切问题都解决了。

举个例子,字段a被定义为UNIQUE,并且原数据库表table中已存在记录(2,2,9)和(3,2,1),如果插入记录的a值与原有记录重复,则更新原有记录,否则插入新行:


INSERT INTO TABLE (a,b,c) VALUES
(1,2,3),
(2,5,7),
(3,3,6),
(4,8,2)
ON DUPLICATE KEY UPDATE b=VALUES(b);

以上SQL语句的执行,发现(2,5,7)中的a与原有记录(2,2,9)发生唯一值冲突,则执行ON DUPLICATE KEY UPDATE,将原有记录(2,2,9)更新成(2,5,9),将(3,2,1)更新成(3,3,1),插入新记录(1,2,3)和(4,8,2)

注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!bitsCN.com

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Di manakah saya boleh melihat rekod perkara yang telah saya beli di Pinduoduo Bagaimana untuk melihat rekod produk yang dibeli? Di manakah saya boleh melihat rekod perkara yang telah saya beli di Pinduoduo Bagaimana untuk melihat rekod produk yang dibeli? Mar 12, 2024 pm 07:20 PM

Perisian Pinduoduo menyediakan banyak produk yang bagus, anda boleh membelinya pada bila-bila masa dan di mana-mana sahaja, dan kualiti setiap produk dikawal ketat, setiap produk adalah tulen, dan terdapat banyak diskaun beli-belah keutamaan, membolehkan semua orang membeli-belah dalam talian. Masukkan nombor telefon mudah alih anda untuk log masuk dalam talian, tambahkan berbilang alamat penghantaran dan maklumat hubungan dalam talian, dan semak arah aliran logistik terkini pada bila-bila masa. Cari dan leret ke atas dan ke bawah untuk membeli dan membuat pesanan. Anda boleh mengalami kemudahan tanpa meninggalkan rumah Dengan perkhidmatan membeli-belah dalam talian, anda juga boleh melihat semua rekod pembelian, termasuk barangan yang telah anda beli, dan menerima berpuluh-puluh sampul merah beli-belah dan kupon Sekarang editor telah menyediakan maklumat dalam talian terperinci untuk Pengguna Pinduoduo untuk melihat rekod produk yang dibeli. 1. Buka telefon anda dan klik pada ikon Pinduoduo.

Cara melihat dan mengurus sejarah arahan Linux Cara melihat dan mengurus sejarah arahan Linux Aug 01, 2023 pm 09:17 PM

Cara Melihat Sejarah Perintah dalam Linux Di Linux, kami menggunakan perintah sejarah untuk melihat senarai semua arahan yang dilaksanakan sebelum ini. Ia mempunyai sintaks yang sangat mudah: sejarah Beberapa pilihan untuk berpasangan dengan perintah sejarah termasuk: Penerangan pilihan -c mengosongkan sejarah arahan untuk sesi semasa -w menulis sejarah arahan ke fail -r memuat semula sejarah arahan daripada fail sejarah - n Hadkan bilangan keluaran bagi perintah terkini Hanya jalankan perintah sejarah untuk melihat senarai semua perintah yang dilaksanakan sebelum ini dalam terminal Linux: Selain melihat sejarah arahan, anda juga boleh mengurus sejarah arahan dan melakukan pengubahsuaian pada perintah yang dilaksanakan sebelum ini, membalikkan cari sejarah arahan atau padam sejarah sepenuhnya

Bagaimana untuk menyemak sejarah panggilan dalam iPhone dan mengeksportnya? Bagaimana untuk menyemak sejarah panggilan dalam iPhone dan mengeksportnya? Jul 05, 2023 pm 12:54 PM

Rakaman panggilan dalam iPhone sering dipandang remeh dan merupakan salah satu ciri iPhone yang paling kritikal. Dengan kesederhanaannya, ciri ini amat penting dan boleh memberikan cerapan penting tentang panggilan yang dibuat atau diterima pada peranti. Sama ada untuk tujuan kerja atau prosiding undang-undang, keupayaan untuk mengakses rekod panggilan boleh terbukti tidak ternilai. Secara ringkas, sejarah panggilan merujuk kepada entri yang dibuat pada iPhone anda apabila anda membuat atau menerima panggilan. Log ini mengandungi maklumat penting, termasuk nama kenalan (atau nombor jika tidak disimpan sebagai kenalan), cap masa, tempoh dan status panggilan (didail, terlepas atau tidak dijawab). Ia adalah rekod ringkas tentang sejarah komunikasi anda. Sejarah panggilan termasuk jalur sejarah panggilan yang disimpan pada iPhone anda

Cara melihat sejarah log ubat anda dalam apl Kesihatan pada iPhone Cara melihat sejarah log ubat anda dalam apl Kesihatan pada iPhone Nov 29, 2023 pm 08:46 PM

iPhone membolehkan anda menambah ubat dalam apl Kesihatan untuk menjejak dan mengurus ubat, vitamin dan suplemen yang anda ambil setiap hari. Anda kemudian boleh log ubat yang telah anda ambil atau langkau apabila anda menerima pemberitahuan pada peranti anda. Selepas anda mencatatkan ubat anda, anda boleh melihat kekerapan anda mengambil atau melangkaunya untuk membantu anda menjejaki kesihatan anda. Dalam siaran ini, kami akan membimbing anda untuk melihat sejarah log ubat yang dipilih dalam apl Kesihatan pada iPhone. Panduan ringkas tentang cara melihat sejarah log ubat anda dalam Apl Kesihatan: Pergi ke Apl Kesihatan>Semak imbas>Ubat>Ubat>Pilih Ubat>Pilihan&a

Nasihat Pembangunan C#: Sistem Pembalakan dan Pemantauan Nasihat Pembangunan C#: Sistem Pembalakan dan Pemantauan Nov 22, 2023 pm 08:30 PM

Cadangan Pembangunan C#: Sistem Pembalakan dan Pemantauan Ringkasan: Dalam proses pembangunan perisian, sistem pembalakan dan pemantauan adalah alat penting. Artikel ini akan memperkenalkan peranan dan cadangan pelaksanaan sistem pembalakan dan pemantauan dalam pembangunan C#. Pengenalan: Pembalakan dan pemantauan adalah alat penting dalam projek pembangunan perisian berskala besar. Mereka boleh membantu kami memahami status berjalan program dalam masa nyata dan menemui serta menyelesaikan masalah dengan cepat. Artikel ini akan membincangkan cara menggunakan sistem pengelogan dan pemantauan dalam pembangunan C# untuk meningkatkan kualiti perisian dan kecekapan pembangunan. Peranan sistem pembalakan

Bagaimana untuk log dan memantau projek pembangunan Java Bagaimana untuk log dan memantau projek pembangunan Java Nov 03, 2023 am 10:09 AM

Bagaimana untuk log dan memantau projek pembangunan Java 1. Pengenalan latar belakang Dengan perkembangan pesat Internet, semakin banyak syarikat telah mula membangunkan Java dan membina pelbagai jenis aplikasi. Dalam proses pembangunan, pembalakan dan pemantauan adalah pautan penting yang tidak boleh diabaikan. Melalui pembalakan dan pemantauan, pembangun boleh menemui dan menyelesaikan masalah dalam masa untuk memastikan kestabilan dan keselamatan aplikasi. 2. Kepentingan pembalakan 1. Penjejakan masalah: Apabila ralat aplikasi berlaku, pengelogan boleh membantu kami mencari masalah dengan cepat.

Bagaimana untuk merekodkan kilometer larian dalam simpanan Di manakah trek larian direkodkan? Bagaimana untuk merekodkan kilometer larian dalam simpanan Di manakah trek larian direkodkan? Mar 12, 2024 am 11:10 AM

Kita semua tahu bahawa perkara di atas adalah perisian sukan yang sangat baik untuk kami, yang boleh membantu pengguna menyelesaikan pelbagai sukan dalam masa nyata, dan kami juga boleh melihat beberapa trajektori di atas semasa beberapa proses berjalan Anda boleh mengetahui lebih lanjut mengenainya 't tahu tentang beberapa maklumat fungsi di atas, jadi hari ini saya akan memberi anda penjelasan yang baik tentang beberapa kandungan dan pengalaman, supaya semua orang boleh menjalankan pelbagai fungsi dengan lebih baik Jika anda juga ingin tahu beberapa trek dan rekod tentang larian anda sendiri, pastikan anda tidak terlepas kandungan yang lebih berkualiti tinggi menanti anda untuk mengetahuinya. Banyak maklumat strategi yang menarik menanti anda dengan editor sekarang. ,

Bagaimana untuk mengosongkan sejarah pada iPhone Bagaimana untuk mengosongkan sejarah pada iPhone Jun 29, 2023 pm 01:13 PM

Bagaimana untuk mengosongkan sejarah iPhone dalam Safari? Untuk mengosongkan sejarah penyemakan imbas dan carian anda pada Safari Apple, anda perlu membuka apl Tetapan pada peranti anda. Selepas memilih Tetapan, anda perlu tatal ke bawah dan pilih Safari, kemudian menu lain akan muncul dan anda perlu memilih Kosongkan Sejarah dan Data Laman Web. Anda kini perlu memilih Kosongkan Sejarah dan Data daripada menu, yang akan memadamkan semua sejarah carian, sejarah penyemakan imbas, kuki dan data daripada penyemak imbas Safari Apple. Itu sahaja, semua sejarah penyemakan imbas dan sejarah carian anda yang terdahulu kini dipadamkan daripada Safari. Jika anda tidak mahu memadamkan semua sejarah carian dalam Safari

See all articles