• User

    Info su campo id di una tabella MySQL

    Ragazzi potrebbe essere una domanda banale. Ma non riesco a capire una cosa... io creo una tabella in SQL con id,nome,cognome.
    All'aggiunta di un campò c'è un incremento dell'id (settato auto_increment), quando lo elimino nn ci sono problemi... quando reinserisco un campo l'id salta un numero... cioè mi spiego:
    inserimento primo campo
    id = 1 nome= pippo cognome=rossi
    iserimento secondo campo
    id = 2 nome= luca cognome=rossi

    dopo di che elimino il campo e come faccio un inserimento
    non parte con id=2 ma passa a id=3
    e così via discorrendo

    è normale? o si può ovviare questo problema???

    Grazie mille in anticipo


  • User Attivo

    Ciao,
    quello è il corretto funzionamento dell'auto_increment.
    L'istruzione DELETE non modifica il conteggio dell'auto_increment nemmeno se cancelli tutte le righe.
    L'unico modo per resettare l'auto_increment cancellando tutte le righe è utilizzando il comando TRUNCATE TABLE.

    Alessandro


  • User

    Allora quindi se vorrei fare una cosa che non mi fà questo problema dovrei settare io manualmente l'id ad ogni interrogazione del DB... è uno scristo... e non ne vale la pena. Ti spiego ho fatto una sito per un agenzia di viaggi quasi ultimato solo che oggi testando la parte amministrativa per i viaggi ad un certo punto... nella cancellazione si è impallato e diceva che i record selezionati erano già stati cancellati mentre nel DB erano presenti.


  • User Attivo

    Se fai riferimento ai record sempre tramite l'ID e non in funzione, ad esempio, di una variabile utilizzata come contatore quando li elenchi (l'esempio classico è un* for($i=0; ...)* ), problemi di questo tipo non dovrebbero mai presentarsi indipendentemente da come l'auto_increment funziona.
    Se accade vi è un arrore nel codice php che gestisce la cancellazione.


  • User

    ok per ora lo lascio così anche perchè per andare di fretta nella cancellazione è probabile che l'ho mandato in tilt ma se in futuro da problemi allora lo risolvero con una variabile non auto_increment.
    Grazie della spiegazione
    a buon rendere 😉