A volte potrebbe essere necessario creare rapidamente molti dati per il test di carico. Puoi selezionare e inserire nella stessa tabella in MySQL. Questo approccio fa crescere rapidamente le tue tabelle esistenti. Offre molti dischi con cui giocare. Ecco alcuni modi per farlo.
Inserisci nella stessa tabella in MySQL
Sintassi
INSERT INTO table_name ( field1, field2,...fieldN ) SELECT field1, field2, fieldN from table_name;
Esempio
Per una tabella nome_tabella con le colonne a, b, c
+------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | | 3 | 3 | 3 | +------+------+------+
Inserisci nella stessa tabella in MySQL tutti i record da una tabella
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 | +------+------+------+
Inserisci nella stessa tabella in MySQL alcuni record da una tabella
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 | +------+------+------+
È possibile che venga visualizzato un errore di valore duplicato se uno di questi campi è una chiave primaria o se si dispone di un vincolo di unicità per un campo. Ecco come evitarlo.
Inserisci nella stessa tabella in MySQL senza duplicati
Sintassi
INSERT INTO table_name ( field1, field2,...fieldN ) SELECT field1, field2, fieldN from table_name ON DUPLICATE KEY UPDATE primary_key_field=<expression> ;
Esempio
Per una tabella nome_tabella con le colonne a, b, c e c è la chiave primaria
+------+------+------+ | a | b | c | +------+------+------+ | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 | +------+------+------+
Inserisci nella stessa tabella in MySQL tutti i record da una tabella
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 | +------+------+------+
Inserisci nella stessa tabella in MySQL alcuni record da una tabella
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 | +------+------+------+
Puoi leggere di più su Come eseguire un inserimento di massa in MySQL