Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    [MySQL - Java] Ottenere ID all'inserimento di un nuovo record

    Ciao a tutti,

    Tramite Java effettuo delle query al db, e vorrei sapere come e se posso ottenere l'ID dell'ultimo record inserito (o se è un operazione che va a discrezione del linguaggio che manipola il db (Java nel mio caso)).


    NB: Non posso leggere l'ultimo che ho inserito, poichè il db potrebbe aver già registrato altri dati dopo a quello.


    Grazie a tutti!

    Ciao,
    Patrick Jane

  2. #2
    Hai una ID del tuo campo? Basta prendere con una query la riga con ID più alto ed è l'ultima inserita. Mi sfugge qualcosa?

  3. #3
    con java non so, prova con google

    questo sono due dei primi risultati che ho trovato, ma per me sono in arabo...
    Dovresti chiedere in java...

    Oppure nella tua funzione che inserisce i dati, potresti mandare la query a mysql con una select dell'ultimo id:


    "SELECT LAST_INSERT_ID() FROM your_table"

    http://www.sitepoint.com/forums/show...rt_id-for-java
    http://stackoverflow.com/questions/4...ted-value-jdbc
    Ciao!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Vi ringrazio per le risposte.

    Il problema non è come farlo in Java, ma come evitare di dover fare una query al db per sapere l'ID del record che ho inserito. E non posso nemmeno prendere l'ultimo elemento... poichè più postazioni possono salvare nel db, quindi corro l'enorme rischio di prelevare l'ID errato.

    Non mi resta che fare come ho fatto sino ad ora quindi: fare una query con i dati che ho appena inserito ed ottenere l'ID...


    PS: L'id sarebbe un campo intero auto_increment

  5. #5
    SELECT LAST_INSERT_ID() FROM your_table
    non estrae l'id più grande, ma quello appena inserito con la connessione aperta.
    Ciao!

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Uhm, quindi aspetta... vuoi dire che se nello stesso istante A, B, e C effettuano una query, ottengo Aid, Bid e Cid?

    Questa è una buona notizia!

    Grazie! ^^


    Ciao,
    Patrick Jane

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    L'entusiasmo è svanito dopo un test... come supponevo, non funziona.
    Apro la connessione in java, ma la connessione non la chiudo mai, la chiudo alla fine. Quindi se inserisco 2 nuovi record, ottengo lo stesso id.

  8. #8
    Dovresti chiamare il last id subito dopo la query insert...

    quindi dopo ogni query insert chiami l'id e lo assegni ad una variabile...
    oppure, se questi inserimenti sono fatti da utenti diversi, da computer diversi, il problema non si pone dato che usano connessioni diverse.
    Ciao!

  9. #9
    Se invece nel database aggiungi un campo di testo che dice chi ha fatto l'aggiunta e aggiungi alla query la condizione sul tuo nome?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Vi ringrazio per le risposte! ^^

    Dovresti chiamare il last id subito dopo la query insert...

    quindi dopo ogni query insert chiami l'id e lo assegni ad una variabile...
    Se ho capito bene intendi che in mezzo alle 2 query non deve esserci un altro insert... io se non erro ho usato 2 oggetti per creare le due diverse query, ma (se non sbaglio) non ho posto subito dopo il last id... appena provo vi farò sapere!


    oppure, se questi inserimenti sono fatti da utenti diversi, da computer diversi, il problema non si pone dato che usano connessioni diverse.
    No, la connessione la stabilisco con un utente creato ad-hoc dal Server.
    In pratica è un applicazione Client/Server, dove il Server fa da tramite tra i Client ed il database... in pratica sul pc dei client non vengono fatte query, ma solamnte inviate informazioni all'applicazione Server (che provvederà ad effettuare la query richiesta).


    Se invece nel database aggiungi un campo di testo che dice chi ha fatto l'aggiunta e aggiungi alla query la condizione sul tuo nome?
    Non mi è ben chiaro ciò che intendi...


    Grazie ancora!


    Ciao,
    Patrick Jane

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.