Visualizzazione dei risultati da 1 a 10 su 10

Discussione: riempire id mancanti

  1. #1

    riempire id mancanti

    Ho un questito da porvi...

    in una tabella metto un autoincrement chiamato ID e compilo la tabella...

    1 | ... | ... |
    2 | ... | ... |
    3 | ... | ... |
    4 | ... | ... |
    5 | ... | ... |
    6 | ... | ... |

    e così via...

    col tempo poi, tra insert e delete vari, ho la tabella con dei buchi, ovvero


    1 | ... | ... |
    2 | ... | ... |
    5 | ... | ... |
    8 | ... | ... |
    10 | ... | ... |
    11 | ... | ... |

    Esiste una query che mi permetta di inserire delle righe aventi come id tutti gli id mancanti? nel mio caso 3,4,6,7,9? ovvero che nn vi sia l'autoincrement ma un "tappabuchi"?

    scusate per il quesito strano... grazie in anticipo per le vs. risposte

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    L'unica cosa che puoi fare se proprio ti danno fastidio i 'buchi' e svuotare la tabella e reinserire tutti i record (a patto che i nuovi id che verranno generati non siano correlati ad altre tabelle, altrimenti manderesti tutto a ...non si può dire)

    codice:
    create temporary table temp
    select * from tabella
    order by id;
    
    truncate table tabella;
    
    insert into tabella
    (elenco dei campi senza id)
    select elenco dei campi senza id
    from temp;

  3. #3
    si può fare in diversi modi, ma tutti ugualmente inutili. Quei "buchi" non creano alcun problema e cercare di occuparli ti farà solo perdere del tempo (a te e al tuo script in esecuzione).

  4. #4
    il problema principale è che ho, attualmente, 8900 utenti registrati ma ora se uno si registra apparirà come utente n° 9100.. ecco xke miravo a riempire i buchi

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da Queer
    il problema principale è che ho, attualmente, 8900 utenti registrati ma ora se uno si registra apparirà come utente n° 9100.. ecco xke miravo a riempire i buchi
    Fai un count dei record.

  6. #6
    Originariamente inviato da Queer
    il problema principale è che ho, attualmente, 8900 utenti registrati ma ora se uno si registra apparirà come utente n° 9100.. ecco xke miravo a riempire i buchi
    E quale sarebbe il problema, anche avesse l'id 864567?

  7. #7
    che se voglio indire premi al 10.000esimo utente uno sul profilo si ritroverebbe con l'id 10000 ma figurerebbe come il 9800esimo iscritto per esempio

  8. #8
    ma non è che il tuo nick e avatar c'entrano qualcosa con questo desiderio di riempire i buchi?

    Ok, scusa, vado a dormire

  9. #9
    SELECT id FROM tabella ORDER BY id LIMIT 1 OFFSET 9999

    quello è il 10millesimo utente.

    L'id è solo una chiave per gestire i dati, non serve per contarli.

  10. #10
    Originariamente inviato da skidx
    ma non è che il tuo nick e avatar c'entrano qualcosa con questo desiderio di riempire i buchi?

    Ok, scusa, vado a dormire

    Sinceramente, questa te la potevi proprio risparmiare...

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.