ho dovuto modificare ulteriormente la query perché com'era non trovava il progressivo massimo, ma solo i buchi.
i tempi della query non sono cambiati.
2)codice è già primaria quindi ok.
3) la tabella di numeri la sto testando, ma sembra più lenta che non avere una colonna temporanea. almeno per ora che i codici hanno un progressivo basso, probabilmente verso la fine ( 99.999 ) potrebbe essere vero il contrario.
per il punto 1) purtroppo non posso cambiare in INT perché la tabella ospita piu tipi di dati.
codice è un codice a barre.
ci sono articoli vecchi il cui codice era "12345"
ci sono i nuovi articoli il cui codice è "00012.1234.1234.00005" dove ogni sezione indica qualcosa
(es. articolo.colore.marca.progressivo)
il problema è che se trasformo il campo in un INT unsigned ZERO FILL
i codici vecchi diverrebbero 00000.0000.0000.12345 (uso i punti per una facile lettura ma non andrebbero)
e ricercandoli poi ci sarebbero dei problemi con il tempo perché
12345 può essere sia un codice di un articolo finale che il codice articolo identificativo.
si potrebbe cadere in errore.
specie perchè chi mi ha inserito gli articoli prima, ha inserito l'articolo "1" e l'articolo "0001"
valuterò meglio la gestione della tabella e la join.
grazie per il consiglio![]()