righe Come fai a inserto selezionata da table_source
a table_target
utilizzando SQL in MySQL dove:INSERT INTO ... SELECT senza entrare in dettaglio tutte le colonne
- Entrambe le tabelle hanno lo stesso schema
- Tutte le colonne devono trasferire ad eccezione l'incremento automatico
id
- Senza scrivere esplicitamente tutti i nomi delle colonne, come sarebbe noioso
il banale INSERT INTO table_target SELECT * FROM table_source
non riesce su voci duplicate per chiave primaria.
Sei giusto, alla fine ho usato la sintassi esplicita. Per completezza: ottenere facilmente la lista colonne usando ['DESCRIBE'] (http://dev.mysql.com/doc/refman/5.0/en/describe.html) e quindi usare la sintassi' INSERT INTO table1 (campo1, campo2 , campo3) SELECT table2.field1, table2.field2, table2.field3 FROM table2; ' – Jonathan
Il modo più semplice per ottenere i nomi dei campi csv: ' SELECT CONCAT (GROUP_CONCAT (COLUMN_NAME SEPARATOR ','), "\ n") FROM INFORMATION_SCHEMA .COLONNI WHERE TABLE_SCHEMA = 'dbname' AND TABLE_NAME = 'tablename' GROUP BY TABLE_NAME' – Hafenkranich