Utilizzando la risposta da questa domanda: Need MySQL INSERT - SELECT query for tables with millions of recordsMysql sul duplicato aggiornamento tasto + domanda secondaria
new_table
* date
* record_id (pk)
* data_field
INSERT INTO new_table (date,record_id,data_field)
SELECT date, record_id, data_field FROM old_table
ON DUPLICATE KEY UPDATE date=old_table.data, data_field=old_table.data_field;
ho bisogno di questo per lavorare con un gruppo e unirsi .. così da modificare:
INSERT INTO new_table (date,record_id,data_field,value)
SELECT date, record_id, data_field, SUM(other_table.value) as value FROM old_table JOIN other_table USING(record_id) GROUP BY record_id
ON DUPLICATE KEY UPDATE date=old_table.data, data_field=old_table.data_field, value = value;
Non riesco a ottenere il valore aggiornato. Se si specifica old_table.value, viene visualizzato un errore non definito nell'elenco dei campi.
esattamente, questo è il problema – newtover
VALUES() non funziona sulla mia versione mysql (5.1.32). Ho dovuto usare il trucco nella mia risposta qui sotto. Certo che vorrei che VALUES() funzionasse, è molto più elegante. – Justin