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

    funzionamento esatto di auto increment

    Ho alcune tabelle che hanno tutte il campo id settato con auto increment, come si usa fare.

    Vorrei sapere se l'incremento automatico porta a far crescere l'id in modo scriteriato non tenendo conto dei valori disponibili o se ad un certo punto mysql si accorge per esempio che esiste l'id 21, il 23 ed il 24 ma che il valore 22 è disponibile e quindi lo utilizza prima di passare al 25. Io ho fatto una prova a breve tempo dalla cancellazione, mettiamo del 22, ma lo lascia vuoto e passa subito a 25. Così facendo si fa presto ad andare su...

    Nota: Sono preoccupato circa la correttezza del mio codice che alcune volte, per comodità, non corregge i dati con UPDATE ma prima cancella quelli esistenti e poi ne scrive di nuovi. Può sembrare strano che due passaggi mi vengano più comodi di uno, ma è così che mi evito molto codice aggiuntivo per andare alla ricerca dei dati da rimpiazzare.

  2. #2
    il fatto che lìID con auto incremento non venga numerato esattamente come ti credi se cancelli qualche record è ininfluente: quel che importa è che venga generato automaticamente e che serva a rintracciare un certo record nel caso di relazioni uno-ad-uno o uno-a-molti fra due tabelle. ad esempio in un select le righe option possono avere l'aspetto seguente:

    <option value="123">Giovanni</option>

    supponendo che il valore di value sia l'ID del record di Giovanni ecco che quando scegli un nome facendo una query è facile rintracciare i dati di quel record.

  3. #3
    Sì, questo è vero, ma con un sistema di cancella-scrivi come il mio invece che un sistema di riscrittura si fa presto ad andare su coi numeri, e il campo id che è un int(11) sarà pure esageratamente alto ma non ho idea di quanti record effettivi possa contenere dato che lascia indietro i vecchi valori anche se disponibili. A meno che arrivati al massimo (magari dopo due o tre anni di utilizzo o magari dopo venti, chi può dirlo) non vada alla ricerca dei buchi nella numerazione, ma non credo sia così.

  4. #4
    potresti cancellare la riga di ID dalla tabella e poi ricrearla sempre come auto_increment, sicuramente ad ogni riga verrà assegnato un numero crescente

  5. #5
    Ah già, dici un lavoro fatto manualmente ma in un sol colpo, magari con l'aiuto di una interfaccia grafica. Tanto il codice php se funziona ora funziona anche dopo aver modificato gli id, purchè univoci. Non avevo pensato a questo, quindi il problema non sussiste. Grazie mi hai tranquillizzato

  6. #6
    Originariamente inviato da giancarlo75
    Sì, questo è vero, ma con un sistema di cancella-scrivi come il mio invece che un sistema di riscrittura si fa presto ad andare su coi numeri, e il campo id che è un int(11) sarà pure esageratamente alto ma non ho idea di quanti record effettivi possa contenere dato che lascia indietro i vecchi valori anche se disponibili. A meno che arrivati al massimo (magari dopo due o tre anni di utilizzo o magari dopo venti, chi può dirlo) non vada alla ricerca dei buchi nella numerazione, ma non credo sia così.


    INT UNSIGNED = 0 to 4.294.967.295

    credo che di id ce ne siano ampiamente a disposizione anche per l'agenzia delle entrate.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.