Write haof XML files: Diego Firmenich
(
diego.firmenich@gmail.com)
Fecha: jue 03 nov 2005 - 20:11:37 CET
Aparentemente por lo que dices crearte un objeto secuencia
deberia
simplicarte las cosas.
Para ello corre la siguiente sentencia
CREATE SEQUENCE nombre_secuencia;
Eso crea un objeto secuencia por defecto, es decir que
empieza en uno y
se incrementa de a uno cada vez que la usas (podes modificar
estos
parametros y otros mas como el numero maximo y el minimo por
ejemplo).
Despues para utilizarla, el objeto secuencia tiene dos
seudocolumnas:
CURRVAL y NEXTVAL
Entonces podes hacer este tipo de cosas
INSERT INTO una_tabla (id,nombre) VALUES
(nombre_secuencia.nextval,"Oscar");
Y para ver cual es el ultimo id que diste podes consultar
SELECT nombre_secuencia.currval FROM DUAL;
Para apreciar bien el funcionamiento podes jugar con
DUAL.
SELECT nombre_secuencia.nextval FROM DUAL;
SELECT nombre_secuencia.currval FROM DUAL;
Eso seria para lograr un manejo mas prolijo en cuanto a
los
identificadores.
Para eliminar la competencia evidentemente no sirve. Puede
pasar que
previo a consultar el valor actual de la secuencia otra
sesion haga un
insert, y el valor retornado no sea el esperado.
Para eliminar esa competencia deberias crear un procedimiento
almacenado
que haga una especie de envoltorio (wrapper) del insert y
devuelva el
valor de la secuencia.
Bueno espero te sirva.
Saludos
Diego Firmenich
Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:23:40 CET