Lebih
Masukkan ke dalam tabel MySQL atau update jika ada
Saya ingin menambahkan satu baris untuk tabel database, tetapi jika baris yang ada dengan sama kunci unik yang saya inginkan untuk memperbarui baris.
Misalnya,
insert into table (id, name, age) values(1, "A", 19)
Katakanlah kunci unik adalah id
, dan di database saya ada turut dengan id = 1
. Dalam hal ini saya ingin untuk memperbarui baris tersebut dengan nilai-nilai ini. Biasanya ini memberikan kesalahan. Jika saya menggunakan insert MENGABAIKAN
itu akan mengabaikan kesalahan, tapi itu masih tidak update.
817
11
Gunakan
INSERT ... ON DUPLICATE KEY UPDATE
PERTANYAAN:
Check out MENGGANTI
http://dev.mysql.com/doc/refman/5.0/en/replace.html
Ketika menggunakan batch insert menggunakan sintaks berikut:
Mencoba ini:
Semoga ini bisa membantu.
Coba ini:
INSERT INTO tabel (id,nama,umur) VALUES('1','Mohammad','21') ON DUPLICATE KEY UPDATE name='Mohammad',usia='21'
Catatan: Di sini jika id adalah primary key kemudian setelah penyisipan pertama dengan
id='1'
setiap kali mencoba untuk memasukkanid='1'
akan update nama dan usia dan sebelumnya nama usia akan berubah.Semua solusi ini akan bekerja mengenai pertanyaan anda.
Jika anda ingin tahu secara detail mengenai pernyataan ini kunjungi link ini
Ketika menggunakan SQLite:
Asalkan
id
adalah kunci utama. Atau yang lain itu hanya sisipan baris lain. Melihat INSERT (SQLite).Hanya karena aku di sini mencari solusi tapi untuk memperbarui dari yang lain identik terstruktur tabel (dalam kasus saya website tes DB untuk hidup DB):
Seperti yang disebutkan di tempat lain, hanya kolom yang ingin anda perbarui harus disertakan setelah
ON DUPLICATE KEY UPDATE
.Tidak perlu daftar kolom di
INSERT
atauPILIH
, meskipun saya setuju itu's mungkin praktek yang lebih baik.Dalam kasus saya saya buat di bawah ini pertanyaan pertama, query jika
id
1 sudah ada dan usia yang sudah ada, setelah itu jika anda membuat permintaan pertama tanpausia
dari nilaiage
akan adauntuk menghindari masalah di atas membuat query seperti di bawah ini
mungkin itu akan membantu anda ...
Dalam kasus ini, anda ingin membuat lapangan lama (Bagi ex: nama). Permintaan akan:
Juga jangan lupa untuk memperhatikan tentang unik key constraint.