Penyisipan massal di MySQL adalah saat Anda perlu memasukkan banyak catatan dalam tabel sekaligus. Ini dapat digunakan untuk membuat data dengan cepat untuk pengujian. Sangat melelahkan untuk menulis ulang pernyataan insert untuk setiap baris. Inilah cara Anda dapat menyisipkan secara massal di MySQL.
Sisipkan Massal di MySQL
Sintaks
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( a1, a2,...aN ),( b1, b2,...bN ),..;
a1, a2, a3,.. – nilai untuk field1
b1, b2, b3,.. – nilai untuk bidang2
c1, c2, c3,.. – nilai untuk bidang3
…
Contoh
Untuk tabel nama_tabel dengan kolom a, b, c
mysql> INSERT INTO table_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9),(3,3,3); +------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 3 | +------+------+------+
Seperti yang Anda lihat, penyisipan massal di MySQL memungkinkan baris/kolom duplikat. Ini dapat menyebabkan kunci utama duplikat. Inilah cara menghindarinya.
Sisipkan massal di MySQL tanpa duplikat
Kami menggunakan klausa ON DUPLICATE KEY. Ini mendeteksi nilai duplikat dari kunci utama. Kami juga menambahkan klausa UPDATE untuk memperbarui nilai duplikat.
Sintaks
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( a1, a2,...aN ),( b1, b2,...bN ),.. ON DUPLICATE KEY UPDATE primary_key_field=<expression> ;
a1, a2, a3,.. – nilai untuk field1
b1, b2, b3,.. – nilai untuk bidang2
c1, c2, c3,.. – nilai untuk bidang3
…
Contoh
Untuk tabel nama_tabel dengan kolom a, b, c dan c adalah kunci utama
mysql> INSERT INTO table_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9),(3,3,3) ON DUPLICATE KEY UPDATE c=c+1; +------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 4 | +------+------+------+
Anda juga dapat memperbarui nilai berdasarkan kolom lain