Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mencapai Fungsi Pernyataan MERGE SQL dalam MySQL?

Bagaimanakah Saya Boleh Mencapai Fungsi Pernyataan MERGE SQL dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-29 21:01:11
asal
301 orang telah melayarinya

How Can I Achieve the Functionality of SQL's MERGE Statement in MySQL?

Alternatif MySQL kepada Pernyataan MERGE

SQL termasuk pernyataan gabungan yang membolehkan pengguna menggabungkan operasi INSERT dan UPDATE ke dalam satu pertanyaan. Walau bagaimanapun, MySQL tidak menyokong kenyataan ini.

Mencapai Kesan Gabungan dalam MySQL

Walaupun kekurangan pernyataan MERGE khusus, MySQL menyediakan penyelesaian alternatif:

MASUKKAN...PADA KEMASKINI KUNCI PENDUA

Ini sintaks membolehkan anda memasukkan baris baharu ke dalam jadual sambil mengemas kini baris sedia ada jika nilai dalam indeks UNIQUE atau PRIMARY KEY sudah ada. Apabila baris baharu menyebabkan nilai pendua, MySQL akan melaksanakan langkah berikut:

  1. Semakan Pertama: MySQL mula-mula menyemak sama ada baris sedia ada sepadan dengan baris masuk berdasarkan unik atau kunci utama.
  2. Kemas kini jika Benar: Jika padanan ditemui, MySQL mengemas kini yang sedia ada baris dengan nilai baharu yang dinyatakan dalam klausa KEMASKINI.
  3. Sisipkan jika Salah: Jika tiada padanan ditemui, MySQL memasukkan baris baharu seperti yang dijangkakan.

Contoh:

INSERT INTO my_table (id, name, age)
VALUES (1, 'John Doe', 35)
ON DUPLICATE KEY UPDATE name = 'Jane Doe', age = 40;
Salin selepas log masuk

Dalam contoh ini, jika baris dengan id 1 sudah wujud, MySQL akan mengemas kini nama kepada 'Jane Doe' dan umur kepada 40. Jika tidak, ia akan memasukkan baris baharu dengan nilai yang ditentukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi Pernyataan MERGE SQL dalam MySQL?. 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