Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie führt man eine Masseneinfügung in MySQL durch?

Eine Masseneinfügung in MySQL ist, wenn Sie viele Datensätze gleichzeitig in eine Tabelle einfügen müssen. Es kann verwendet werden, um schnell Daten zum Testen zu erstellen. Es ist mühsam, die Insert-Anweisung für jede Zeile neu zu schreiben. So können Sie in MySQL massenweise einfügen.

Masseneinfügung in MySQL

Syntax

INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( a1, a2,...aN ),( b1, b2,...bN ),..;

a1, a2, a3,.. – Werte für Feld1
b1, b2, b3,.. – Werte für Feld2
c1, c2, c3,.. – Werte für Feld3

Beispiel
Für eine Tabelle table_name mit Spalten 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  |
+------+------+------+

Wie Sie sehen können, erlaubt die Masseneinfügung in MySQL doppelte Zeilen/Spalten. Dies kann zu doppelten Primärschlüsseln führen. So können Sie das vermeiden.

Masseneinfügung in MySQL ohne Duplikate

Wir verwenden die ON DUPLICATE KEY-Klausel. Es erkennt doppelte Werte des Primärschlüssels. Wir fügen auch eine UPDATE-Klausel hinzu, um den doppelten Wert zu aktualisieren.

Syntax

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,.. – Werte für Feld1
b1, b2, b3,.. – Werte für Feld2
c1, c2, c3,.. – Werte für Feld3

Beispiel
Für eine Tabelle table_name mit Spalten a, b, c und c ist der Primärschlüssel

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  |
+------+------+------+

Sie können den Wert auch basierend auf anderen Spalten aktualisieren