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