Групово вмъкване в MySQL е, когато трябва да вмъкнете много записи в таблица наведнъж. Може да се използва за бързо създаване на данни за тестване. Уморително е да се пренаписва операторът за вмъкване за всеки ред. Ето как можете да вмъкнете групово в MySQL.
Групово вмъкване в MySQL
Синтаксис
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( a1, a2,...aN ),( b1, b2,...bN ),..;
a1, a2, a3,.. – стойности за поле 1
b1, b2, b3,.. – стойности за поле2
c1, c2, c3,.. – стойности за поле3
…
Пример
За таблица име_на_таблица с колониа, б, в
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 | +------+------+------+
Както можете да видите, груповото вмъкване в MySQL позволява дублиране на редове/колони. Това може да доведе до дублиране на първични ключове. Ето как можете да го избегнете.
Групово вмъкване в MySQL без дубликати
Използваме клауза ON DUPLICATE KEY. Той открива дублиращи се стойности на първичния ключ. Добавяме и клауза UPDATE, за да актуализираме дублираната стойност.
Синтаксис
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,.. – стойности за поле 1
b1, b2, b3,.. – стойности за поле2
c1, c2, c3,.. – стойности за поле3
…
Пример
За таблица име_на_таблица с колониа, б, в и c е първичният ключ
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 | +------+------+------+
Можете също да актуализирате стойност въз основа на други колони