Autoincremental Firebird
Hola acabo de pasar una b.d. de paradox a firebird 1.5. Los campos autoincrementales de paradox se me han convertido en Triggers para que la aplicación pueda funcionar, pero cuando estos campos pertenecen a una clave primaria, el Trigger falla, y no me deja
Insertar, me salta este error: “Field CODIGO must have a value”. Claro, ya que no permite una clave en nulo.
La tabla es esta:
CREATE TABLE "ACTU_VINCULOS" (
"CODIGO" INTEGER NOT NULL /* "CODIGO" */ ,
"COD_REPRE" VARCHAR(10) /* "COD_REPRE" */ ,
"QUERYCAB" VARCHAR(100) /* "QUERY CAB" */ ,
"QUERYLIN" VARCHAR(100) /* "QUERY LIN" */
);
/* Indexes for table "ACTU_VINCULOS.DB" */
/* Found Index Primary Index For This Table, Options [ixPrimary,ixUnique] */
ALTER TABLE "ACTU_VINCULOS" ADD CONSTRAINT "ACTU_VINCULOS_PRIMARY" PRIMARY KEY ("CODIGO");
/* Generators for AutoInc fields for table "ACTU_VINCULOS.DB" */
/* SELECT max(ACTU_VINCULOS.DB.CODIGO) FROM ACTU_VINCULOS.DB */
CREATE GENERATOR "GEN_ACTU_VINCULOS_CODIGO";
SET GENERATOR "GEN_ACTU_VINCULOS_CODIGO" TO 15;
SET TERM ^;
CREATE TRIGGER "TRIG_ACTU_VINCULOS_BI" FOR "ACTU_VINCULOS" BEFORE INSERT
AS BEGIN
IF(NEW."CODIGO" IS NULL) THEN NEW."CODIGO" = GEN_ID("GEN_ACTU_VINCULOS_CODIGO",1);
END ^
Alguien podría decirme por qué no se dispara el Trigger? Muchas gracias a todos.
|