Ver Mensaje Individual
  #1  
Antiguo 05-06-2016
ryderMX ryderMX is offline
Registrado
NULL
 
Registrado: jun 2013
Posts: 9
Reputación: 0
ryderMX Va por buen camino
Clave Foranea se repite muchas veces

Buenas, tengo la siguiente situacion y nosé a que se debe, el tema es que en una de mis tablas al crear una clave foranea, ésta se repite muchas veces, por ahora no ha dado problema pero es claro que no es normal, abajo les dejo el metadata de la tabla que está en la base.
Cita:
/* Table: ITEMCOMPROBPAGO, Owner: SYSDBA */

CREATE TABLE "ITEMCOMPROBPAGO"
(
"IDPAGO" INTEGER NOT NULL,
"ITEM" INTEGER NOT NULL,
"IDCOMPROB" INTEGER NOT NULL,
"IMPORTE" DOUBLE PRECISION,
"IDPAGOADELANTO" INTEGER NOT NULL,
PRIMARY KEY ("IDPAGO", "IDCOMPROB", "ITEM")
);
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDCOMPROB") REFERENCES "COMPROBANTES" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
ALTER TABLE "ITEMCOMPROBPAGO" ADD FOREIGN KEY ("IDPAGOADELANTO") REFERENCES "COMPROBPAGO" ("ID");
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER "ITEMCOMPROBPAGO_AI" FOR "ITEMCOMPROBPAGO"
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
UpDate Comprobantes Set Pagado=Pagado+New.Importe Where Id=New.IdComprob ;
END
^

CREATE TRIGGER "ITEMCOMPROBPAGO_AU" FOR "ITEMCOMPROBPAGO"
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
UpDate Comprobantes Set Pagado=Pagado-Old.Importe Where Id=Old.IdComprob ;
UpDate Comprobantes Set Pagado=Pagado+New.Importe Where Id=New.IdComprob ;
END
^

CREATE TRIGGER "ITEMCOMPROBPAGO_BD" FOR "ITEMCOMPROBPAGO"
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
UpDate Comprobantes Set Pagado=Pagado-Old.Importe Where Id=Old.IdComprob ;
END
^

COMMIT WORK ^
SET TERM ;^

Última edición por Casimiro Notevi fecha: 05-06-2016 a las 09:12:35.
Responder Con Cita