sql >> Databáze >  >> RDS >> Mysql

Jak vložit do stejné tabulky v MySQL?

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

  1. Jak získat velikost databáze MySQL?

  2. Jak spustit skript Oracle sql prostřednictvím kódu Java

  3. Načítání třídy com.mysql.jdbc.Driver ... je zastaralá zpráva

  4. Instalace Postgis:geometrie typu neexistuje