Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Riordinare campo id autoincrement

    scusate la mia nabbaggine, ho una domanda su mysql

    Ho delle tabelle con il classico campo id che si autoincrementa per individuare in maniera univoca un record, però trattandosi di tabelle che vengono aggiornate di continuo il campo id cresce velocemente anche se poi i record effettivamente presenti sono pochi perchè si cancella un nominativo per aggiungerne uno nuovo,

    la mia domanda è: in che modo posso eliminare i buchi nella numerazione che si viene a creare con le cancellazioni e riportate tutto ad una numerazione consecutiva ma soprattutto questa modifica degli id può crearmi problemi in qualche modo con il funzionamento del database e della sua interazione con php?

    grazie

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    La vera domanda da fare è: perchè ?
    Cioè, per quale motivo vuoi "chiudere i buchi" ed ottenere ID tutti consecutivi ?

    Hai paura che, crescendo velocemente, tu possa arrivare in fretta al valore massimo possibile ? Già non ti sarà facile arrivare agli oltre 4 miliardi permessi da un int; se usi un bigint non ti basteranno mille vite per consumarli tutti...

    Per una questione "estetica" ? se è questo un fattore importante... scusami la franchezza ma non hai ben chiaro cosa sia un database....

    Comunque: se vuoi poter "riordinare" gli ID allora non devi usare un campo autoincrement ma gestire tu, lato applicativo, la numerazione dei record
    Se vuoi modificare l'esistente devi modificare la struttura della tabella per togliere l'opzione di autoincrement nella colonna e poi effettuare "manualmente" una serie di update per riordinare la numerazione. Ovviamente se tali ID li hai utilizzati come chiave esterna in qualche altra tabella devi, potenzialmente, andare a modificare una marea di roba, con conseguenti rischi di commettere errori

    Si torna quindi alla domanda iniziale: perchè ? sicuro che ne valga la pena ?

  3. #3
    No non uso gli id come chiave esterna in altre tabelle.

    Perchè? perchè penso che possa appensatire troppo ed inutimente il campo id mentre mi basterebbe un campo int a 2 o 3 cifre, mi stò creando un problema inutile?

  4. #4
    si, ti stai creando un problema inutile

  5. #5
    perfetto grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.