Hromadné vkládání v MySQL je, když potřebujete vložit mnoho záznamů do tabulky najednou. Lze jej použít k rychlému vytvoření dat pro testování. Je únavné přepisovat příkaz insert pro každý řádek. Zde je návod, jak můžete hromadně vkládat do MySQL.
Hromadné vkládání do MySQL
Syntaxe
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( a1, a2,...aN ),( b1, b2,...bN ),..;
a1, a2, a3,... – hodnoty pro pole1
b1, b2, b3,... – hodnoty pro pole2
c1, c2, c3,... – hodnoty pro pole3
…
Příklad
Pro tabulku název_tabulky se sloupci 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 | +------+------+------+
Jak můžete vidět, hromadné vkládání v MySQL umožňuje duplicitní řádky/sloupce. Může způsobit duplicitní primární klíče. Zde je návod, jak se tomu můžete vyhnout.
Hromadné vkládání do MySQL bez duplicit
Používáme klauzuli ON DUPLICATE KEY. Detekuje duplicitní hodnoty primárního klíče. Také přidáváme klauzuli UPDATE pro aktualizaci duplicitní hodnoty.
Syntaxe
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,... – hodnoty pro pole1
b1, b2, b3,... – hodnoty pro pole2
c1, c2, c3,... – hodnoty pro pole3
…
Příklad
Pro tabulku název_tabulky se sloupci a, b, c a c je primární klíč
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 | +------+------+------+
Hodnotu můžete také aktualizovat na základě jiných sloupců