Stored Procedure
Estoy haciendo un pequeño sistemita para que funcione en red, y la duda que tengo es la siguiente:
Estoy trabajando con Oracle 8i y java.
Tengo un Stored Procedure que lo que hace es ver cual es el ultimo valor que tiene un campo de una tabla, incrementa el valor y luego inserta un nuevo registro con ese nuevo valor.
Esto lo hago para que me genere numeros consecutivos, mi pregunta es:
Supongamos que hay varias personas accediendo a la DB, se puede dar el caso de que 2 o mas personas ejecuten el stored procedure al mismo tiempo, en ese caso, oracle le va a dar prioridad a uno con lo cual me aseguro de que todos los numeros van a ser consecutivos o puede pasar otra cosa.
Espero que se haya entendido y muchas gracoas.
Estoy trabajando con Oracle 8i y java.
Tengo un Stored Procedure que lo que hace es ver cual es el ultimo valor que tiene un campo de una tabla, incrementa el valor y luego inserta un nuevo registro con ese nuevo valor.
Esto lo hago para que me genere numeros consecutivos, mi pregunta es:
Supongamos que hay varias personas accediendo a la DB, se puede dar el caso de que 2 o mas personas ejecuten el stored procedure al mismo tiempo, en ese caso, oracle le va a dar prioridad a uno con lo cual me aseguro de que todos los numeros van a ser consecutivos o puede pasar otra cosa.
Espero que se haya entendido y muchas gracoas.
Hola.
Puede pasar que dos usuarios accedan simultaneamente al procedure y cojan los dos el mismo ultimo valor de la tabla, con lo cual insertaran el mismo valor.
Utiliza una secuencia.
Puede pasar que dos usuarios accedan simultaneamente al procedure y cojan los dos el mismo ultimo valor de la tabla, con lo cual insertaran el mismo valor.
Utiliza una secuencia.
Lo que pasa que no puedo usar una sequencia porque tienen que ser valores consecutivos, y por ejemplo cuando reinicio la maquina la secuencia salta en 20.
Que otra cosa puedo hacer, hay alguna forma de lockear, gracias
Que otra cosa puedo hacer, hay alguna forma de lockear, gracias