Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    740

    [Mysql] Primo ID Disponibile

    Salve una domanda,
    se ho una serie di ID (1,2,4,5,7,9), come posso fare per calcolare il 1° ID disponibile (in questo caso 3) ???

    Grazie!
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  2. #2

    Re: [Mysql] Primo ID Disponibile

    Originariamente inviato da Aires
    Salve una domanda,
    se ho una serie di ID (1,2,4,5,7,9), come posso fare per calcolare il 1° ID disponibile (in questo caso 3) ???

    Grazie!
    se e' un id autoincrement chiave primaria la cosa non avrebbe senso logico perche' l'id serve solo per definire in modo univoco di quale record si tratta, non dovrebbe avere nessun riferimento al contenuto del record stesso e quindi non esistono record disponibili precedenti il valore raggiunto dal contatore. Semplicemente un numero di id vale l'altro.

    Il primo id disponibile e' quello raggiunto dal contatore auto incrementante. L'ordinamento lo fai con order by.


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

  3. #3
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    740

    Re: Re: [Mysql] Primo ID Disponibile

    Originariamente inviato da piero.mac
    se e' un id autoincrement chiave primaria la cosa non avrebbe senso logico perche' l'id serve solo per definire in modo univoco di quale record si tratta, non dovrebbe avere nessun riferimento al contenuto del record stesso e quindi non esistono record disponibili precedenti il valore raggiunto dal contatore. Semplicemente un numero di id vale l'altro.

    Il primo id disponibile e' quello raggiunto dal contatore auto incrementante. L'ordinamento lo fai con order by.

    Pardon in realtà mi serve per calcolare un altro campo, non autoincrement, e avendo il limite di 2 byte quindi 65.536 numeri non volevo trovarmi troppi buchi nel codice in caso di cancellazioni su dati vecchi.

    Alla fine ho optato per questo sistema:
    1) Inserire tutti i valori inseriti in un Array associativo
    2) Ciclare i numeri da 1 a 65.535 e trovare il primo libero controllandolo con l'exist tra le chiavi dell'Array
    3) Come lo trovo stoppare il ciclo e utilizzare quello
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  4. #4
    Se non e' un riferimento al record (chiave primaria) allora e' un attributo del record. Mi pare strano che un attributo possa avere una assegnazione randomizzata perche' non sarebbe piu' recuperabile logicamente dal record stesso.

    Tanto varrebbe creare una tabella con 65535 record e poi utilizzare solo l'update per aggiornarla basandosi su un altro campo significativo che risultasse vuoto.

    codice:
    update tabella 
    set ...
    where tuo_valore = ''
    limit 1

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