• User Attivo

    Ricerca ultimo valore in un Database

    Ciao a tutti.
    Volevo porvi questo quesito.
    Notando su server windows che dopo l'eliminazione di un record del Database (mysql) l'id univoco (autoincrement) non viene sostituito nell'inserimento di un altro record, bensì continua.
    Es.: cancellando il record con id 5 il successivo record avrà comunque **id 6 **lasciando per sempre vuoto l'id 5 cancellato.
    La domanda è la seguente: su server LINUX avviene la stessa cosa? oppure l'id cancellato viene sostituito dal successivo record?

    GRAZIE COMUNQUE E SEMPRE A DISPOSIZIONE


  • User Attivo

    @mikslap said:

    Es.: cancellando il record con id 5 il successivo record avrà comunque **id 6 **lasciando per sempre vuoto l'id 5 cancellato.
    La domanda è la seguente: su server LINUX avviene la stessa cosa? oppure l'id cancellato viene sostituito dal successivo record?

    A me risulta che lasci il record vuoto e salti al successivo.
    Ad esempio se cancello un utente del mio CSM il nuovo utente salta al numero successivo


  • User

    Dovrei fare delle prove, ma non credo dipenda dal SO è mySQL che gestisce la cosa e lo fa in questo modo.


  • User Attivo

    So che esistono variabili di sistema per mysql che, diciamo, ottimizzano le tabelle in modo da correggere proprio questo problema.
    Ti risulta percaso?


  • User

    E' possibile forzare il contatore auto_increment di mysql a partire da un determinato valore mediante la query:

    
    ALTER TABLE tabella AUTO_INCREMENT = n;
    
    

    In questo modo il contatore auto_increment partirà dal valore n. Se ad esempio n = 10 un eventuale nuovo record inserito avrà chiave 10 se essa non è già in uso altrimenti avrà valore uguale alla chiave massima + 1. Purtroppo questa soluzione non risolve il problema dei "buchi" nella numerazione. Se ad esempio vi sono 5 record con numerazione 1, 2, 4, 6, 7 eseguendo la query mostrata in precedenza con n = 1 il successivo valore del contatore auto_increment sarà uguale a 8.
    Per ulteriori informazioni puoi dare uno sguardo qui: