Molto, decisamente, per favore, usa il 2° metodo... I.E. scorrere i record e aggiornarli.
Motivo rapido per non utilizzare le tabelle temporanee:
- Se stai usando una tabella temporanea MySQL, è visibile alla sessione corrente; che potrebbe essere effettivamente condiviso da più sessioni se si utilizzano connessioni persistenti. Se esegui lo script due volte contemporaneamente, potrebbe causare il danneggiamento dei dati. La stessa cosa vale per la creazione di tabelle reali.
Quello che dovresti fare è:
- Recupera tutti i tuoi dati, o almeno recuperali in batch logici (in questo caso, potrebbe essere fatto recuperando solo le righe di una particolare "raccolta", ad esempio i frutti)
- Ordina le righe (questo potrebbe anche essere stato fatto in precedenza all'interno della query SQL)
- Aggiorna le righe utilizzando un contatore, esattamente come hai proposto