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

    Conoscere il primo id libero

    Salve a tutti.
    Qualcuno sa indicarmi un modo per ottenere il primo id libero in una tabella dove ho il campo "id" impostato in auto increment?

    In pratica sto per inserire un dato e voglio sapere che id avrà.
    Grazie mille anticipatamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    E' importante saperlo prima?
    Di solito su usa mysql_insert_id() subito dopo la insert
    Ma per un semplice fatto: fin quando la query non è eseguita non potrai mai essere certo quale sarà l'id, se tra il momento in cui estrai "il prossimo id" e il momento in cui effettui la INSERT, qualche altro utente effettua la sua INSERT ti troverai con un dato errato

    Metti due utenti che si connettono quasi contemporaneamente e il prossimo id libero è 10

    Utente 1 prende il prossimo id = 10
    Utente 2 prende il prossimo id = 10
    Utente 1 effettua la insert con id = 10
    Utente 2 effettua la insert con id = 11

    In questo caso l'utente 2 si trova con un dato sbagliato, solo perchè casualmente le sue operazioni si sono sovrapposte a quelle dell'utente precedente

  3. #3
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    se il tuo campo ID e` auto increment e al momento l'ultimo ID e`48 per forza sara 49!!!!
    per sapere l'ultimo i inserito dopo che hai fatto il tuo INSERT ed eseguito la query fai:

    $ultimo = mysql_insert_id();
    ¿Hasta la pasta?

  4. #4
    Perfetto, grazie mille!

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923

    Re: Conoscere il primo id libero

    Originariamente inviato da DanBadJar
    Salve a tutti.
    Qualcuno sa indicarmi un modo per ottenere il primo id libero in una tabella dove ho il campo "id" impostato in auto increment?

    In pratica sto per inserire un dato e voglio sapere che id avrà.
    Grazie mille anticipatamente.
    show table status like 'nome_tabella'

    il numero del prossimo id che verrà inserito lo trovi nel campo 'Auto_increment'

    Attento che hai bisogno di un lock in scrittura prima.

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.