Soms moet u snel veel gegevens maken voor belastingtests. U kunt selecteren en invoegen in dezelfde tabel in MySQL. Deze aanpak laat uw bestaande tabellen snel groeien. Het geeft veel platen om mee te spelen. Hier zijn een paar manieren om dit te doen.
Invoegen in dezelfde tabel in MySQL
Syntaxis
INSERT INTO table_name ( field1, field2,...fieldN ) SELECT field1, field2, fieldN from table_name;
Voorbeeld
Voor een tafel table_name met kolommen a, b, c
+------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 3 | +------+------+------+
Voeg in dezelfde tabel in MySQL alle records uit een tabel in
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 | +------+------+------+
Voeg in dezelfde tabel in MySQL enkele records uit een tabel in
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 | +------+------+------+
U krijgt mogelijk een dubbele waardefout als een van deze velden een primaire sleutel is of als u een uniciteitsbeperking voor een veld hebt. Hier leest u hoe u het kunt vermijden.
Invoegen in dezelfde tabel in MySQL zonder duplicaten
Syntaxis
INSERT INTO table_name ( field1, field2,...fieldN ) SELECT field1, field2, fieldN from table_name ON DUPLICATE KEY UPDATE primary_key_field=<expression> ;
Voorbeeld
Voor een tafel table_name met kolommen a, b, c en c is de primaire sleutel
+------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | +------+------+------+
Voeg in dezelfde tabel in MySQL alle records uit een tabel in
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 | +------+------+------+
Voeg in dezelfde tabel in MySQL enkele records uit een tabel in
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 | +------+------+------+
U kunt meer lezen over Hoe u een bulk invoegt in MySQL