Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara melakukan penyisipan massal di MySQL?

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memesan berdasarkan nilai bidang tertentu terlebih dahulu

  2. Cara Mendapatkan Kencan Kemarin di MySQL

  3. Mengapa MySQL mengizinkan grup berdasarkan kueri TANPA fungsi agregat?

  4. Bagaimana cara mendapatkan rekor terbaru di setiap grup menggunakan GROUP BY?

  5. Duplikat, Salin, atau Cadangkan Tabel di MySQL, MariaDB, Oracle, PostgreSQL, DB2 dan SQLite dengan Create Table As SQL