Někdy může být potřeba rychle vytvořit velké množství dat pro zátěžové testování. Můžete vybrat a vložit do stejné tabulky v MySQL. Tento přístup rychle rozšíří vaše stávající tabulky. Poskytuje spoustu záznamů, se kterými se dá hrát. Zde je několik způsobů, jak to udělat.
Vložit do stejné tabulky v MySQL
Syntaxe
INSERT INTO table_name ( field1, field2,...fieldN ) SELECT field1, field2, fieldN from table_name;
Příklad
Pro tabulku název_tabulky se sloupci a, b, c
+------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 3 | +------+------+------+
Vložte do stejné tabulky v MySQL všechny záznamy z tabulky
mysql> INSERT INTO table_name (a,b,c) select a,b,c from table_name; +------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 3 | | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 3 | +------+------+------+
Vložte do stejné tabulky v MySQL nějaké záznamy z tabulky
mysql> INSERT INTO table_name (a,b,c) select a,b,c from table_name where a=1 or a=3; +------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 3 | | 1 | 2 | 3 | | 3 | 3 | 3 | +------+------+------+
Pokud je jedno z těchto polí primárním klíčem nebo máte pro pole omezení jedinečnosti, může se zobrazit chyba duplicitní hodnoty. Zde je návod, jak se tomu můžete vyhnout.
Vložit do stejné tabulky v MySQL bez duplicit
Syntaxe
INSERT INTO table_name ( field1, field2,...fieldN ) SELECT field1, field2, fieldN from table_name ON DUPLICATE KEY UPDATE primary_key_field=<expression> ;
Příklad
Pro tabulku název_tabulky se sloupci a, b, c a c je primární klíč
+------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | +------+------+------+
Vložte do stejné tabulky v MySQL všechny záznamy z tabulky
mysql> INSERT INTO table_name (a,b,c) select a,b,c from table_name ON DUPLICATE KEY c=c+1; +------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 1 | 2 | 4 | | 4 | 5 | 7 | | 7 | 8 | 10 | +------+------+------+
Vložte do stejné tabulky v MySQL nějaké záznamy z tabulky
mysql> INSERT INTO table_name (a,b,c) select a,b,c from table_name where a=1 or a=3 ON DUPLICATE KEY c=c+1; +------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 1 | 2 | 5 | +------+------+------+
Můžete si přečíst více o tom, jak provést hromadné vkládání v MySQL