Ciovo
20-12-2004, 15:39
Nella realizzazione di un sito web mi trovo di fronte a questo problema: devo prendere dal database (Oracle, in questo caso) il massimo di una chiave primaria di una tabella (che è generata tramite una sequence, per cui è un contatore), poi dal sito fatto in jsp (java) ricevere il valore e inserire nella tabella il numero aumentato di uno. Questo perchè ho bisogno del valore durante la sessione per effettuare inserimenti successivi. Quello che voglio evitare è che altro possa leggere il dato prima che l'inserimento successivo incrementi il valore... Voglio dire... uno prende il valore 5 (il massimo fra le chiavi), e prima che inserisca la riga nella tabella con il valore 6, arriva un altro e prende di nuovo 5... vorrei che le azioni di select e successivamente di insert fossero atomiche, o che solo una persona alla volta potesse eseguire queste due (o più, volendo) operazioni.
L'alternativa sarebbe lasciar gestire l'incremento del contatore al database, e però farsi "ritornare" il valore... ma questo credo che non sia possibile...
Qualcuno mi può illuminare?!
Grazie!
L'alternativa sarebbe lasciar gestire l'incremento del contatore al database, e però farsi "ritornare" il valore... ma questo credo che non sia possibile...
Qualcuno mi può illuminare?!
Grazie!