Generadores en interbase
Fíjate que tengo un problema con los generadores, mira en la base de datos tengo un generador, el cual me genera el numero de cliente, pero este se queda actualizado aun haciendo un rollback.
Imaginemos que entran dos usuarios a uno le toca el numero 10 y al otro el 11 si al usuario 1 hace rollbak, ese numero ya se perdió porque al entrar de nuevo, el generador nos dará el 12 .
El script es del generador es el siguiente:
CREATE GENERATOR GCLIENTE;
SET GENERATOR GCLIENTE to 0;
SET TERM/;
CREATE TRIGGER GNCTE FOR CLIENTES
BEFORE INSERT
AS
BEGIN
NEW.ID_CLIENTE=GEN_ID(GCLIENTE,1);
END;/
SET TERM;/
Quizás para este caso se resolvería cambiando el BEFORE INSERT por AFTER INSERT, el problema mayor es cuando usamos MAESTRO-DETALLE (FACTURA), ya que no podríamos insertar ningún detalle hasta que guardemos el maestro...
Tienes alguna opción mejor para solucionar esto.
Imaginemos que entran dos usuarios a uno le toca el numero 10 y al otro el 11 si al usuario 1 hace rollbak, ese numero ya se perdió porque al entrar de nuevo, el generador nos dará el 12 .
El script es del generador es el siguiente:
CREATE GENERATOR GCLIENTE;
SET GENERATOR GCLIENTE to 0;
SET TERM/;
CREATE TRIGGER GNCTE FOR CLIENTES
BEFORE INSERT
AS
BEGIN
NEW.ID_CLIENTE=GEN_ID(GCLIENTE,1);
END;/
SET TERM;/
Quizás para este caso se resolvería cambiando el BEFORE INSERT por AFTER INSERT, el problema mayor es cuando usamos MAESTRO-DETALLE (FACTURA), ya que no podríamos insertar ningún detalle hasta que guardemos el maestro...
Tienes alguna opción mejor para solucionar esto.
1 Respuesta
Respuesta de paufr
1