Rumah > pangkalan data > tutorial mysql > Mengapa INSERT Queries Gagal dengan Klausa WHERE dalam MySQL?

Mengapa INSERT Queries Gagal dengan Klausa WHERE dalam MySQL?

DDD
Lepaskan: 2025-01-19 06:40:10
asal
1013 orang telah melayarinya

Why Do INSERT Queries Fail with a WHERE Clause in MySQL?

Pernyataan INSERT MySQL dan Klausa WHERE: Perangkap Biasa

Menggunakan klausa WHERE dalam pernyataan MySQL INSERT mengakibatkan ralat. Ini kerana klausa WHERE direka khusus untuk operasi KEMASKINI dan PADAM, bukan INSERT.

Pertanyaan yang disediakan mungkin bertujuan untuk sama ada menambah pengguna baharu atau mengubah suai pengguna sedia ada. Mari kita jelaskan kedua-dua senario:

Menambah Pengguna Baharu

Untuk memasukkan pengguna baharu dengan ID 1, sintaks MySQL yang betul ialah:

<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145);</code>
Salin selepas log masuk

Ini memberikan nilai secara langsung kepada id, weight dan desiredWeight, mencipta rekod pengguna baharu.

Mengubah suai Pengguna Sedia Ada

Jika matlamatnya adalah untuk mengemas kini pengguna sedia ada, gunakan kenyataan KEMASKINI:

<code class="language-sql">UPDATE Users SET weight = 160, desiredWeight = 145 WHERE id = 1;</code>
Salin selepas log masuk

Ini menukar weight dan desiredWeight untuk pengguna dengan id = 1 tanpa menjejaskan entri lain.

Kaedah Alternatif: Sisipan Bersyarat dan Kemas Kini

Untuk mengendalikan kedua-dua sisipan dan pengemaskinian berdasarkan kewujudan rekod, pertimbangkan alternatif ini:

  • INSERT ... ON DUPLICATE KEY UPDATE:
<code class="language-sql">INSERT INTO Users (id, weight, desiredWeight) VALUES (1, 160, 145) ON DUPLICATE KEY UPDATE weight = 160, desiredWeight = 145;</code>
Salin selepas log masuk

Ini memasukkan baris baharu jika kunci tidak wujud; jika tidak, ia mengemas kini baris sedia ada.

  • INSERT ... SET: (Walaupun fungsinya serupa dengan kaedah VALUES di atas, sintaks ini selalunya kurang diutamakan untuk kejelasan)

Ingat: Jika id ialah lajur kenaikan automatik, anda boleh meninggalkannya daripada pernyataan INSERT; MySQL akan menjana ID unik secara automatik.

Atas ialah kandungan terperinci Mengapa INSERT Queries Gagal dengan Klausa WHERE 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan