- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Info su campo id di una tabella MySQL
-
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=rossidopo 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
-
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
-
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.
-
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.
-
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