Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    141

    [JAVA] INSERT in db

    Ciao ho questo problema, eseguo una insert nel mio db utilizzando prepareStatement;
    la mia tabella (MySql) ha la prima colonna 'ID' che è definita auto incrementante.
    A me servirebbe sapere che id è stato assegnato dopo la mia insert. Se qualcuno conosce un metodo migliore di fare una ricerca nella tabella dei dati che ho inserito.
    Grazie.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Non è che serva molto codice: basta che tu esegua una query di questo tipo
    codice:
    SELECT campoID FROM TuaTabella ORDER BY campoID DESC
    e che ti prenda il primo risultato.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    questa è meglio
    SELECT MAX(campoID) FROM TuaTabella
    ma ci sarebbe un problema
    se dopo aver creato un record tu vuoi conoscere l'id, prima esegui la insert e poi la select max
    ma se subito dopo la insert un'altra sessione crea un nuovo record, le due select max estraggono lo stesso valore, non coerente con i record
    dovresti aprire una transazione, esegui la insert e la select, e solo adesso chiudi la transazione

  4. #4
    questo invece è ancora migliore, in quanto "metodo proprietario" di mysql...
    non l'ho mai usato, quindi non so come si debba scrivere, ma credo come una normale query...

    Per trovare l'id dell'ultimo record inserito, si utilizza la funzione last_insert_id(), la cui sintassi è molto semplice:
    select last_insert_id();

    Si consideri che, in caso di più connessione contemporanee e, quindi molto probabilmente più inserimenti contemporanei, last_insert_id() mantiene in memoria l'ultimo id relativo alla connessione, quindi se anche due o più utenti operano un inserimento contemporaneo in una tabella, la funzione last_insert_id() non restituirà mai lo stesso id a ciascuno degli utenti dal momento che le operazioni sono considerate distinte in base all'id della connessione.

    Questa funzione si rivela utile soprattutto quando, ad esempio, da uno stesso form si vogliano inserire record master e uno o pi` record relazionato/relazionati con un unico script.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    141
    perfetto. grazie mille

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.