Problema con Foreign keys

From: "Pablo E(dot) Siciliano" <psiciliano(at)puentenet(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Problema con Foreign keys
Date: 2005-04-01 20:44:00
Message-ID: 000b01c536fb$884c4c40$2300a8c0@PuenteHnos.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos.

Estoy teniendo un problema raro con dos tablas, que describo al final. El
asunto es que cuando hago in insert en orden_pasaje, de dos id_orden que
estoy seguro que estan en orden, recibo como respuesta:

ERROR: insert or update on table "orden_pasaje" violates foreign key
constraint "orden_pasaje_id_orden_origen_fkey"
DETAIL: Key (id_orden_origen)=([id_orden_destino]) is not present in table
"orden".

¿Estoy cometiendo algún error con el diseño de las tablas? No se si tendrá
algo que ver (Sospecho que no), pero orden es heredada por varias tablas.

Desde ya, mil gracias por cualquier ayuda.
Pablo E. Siciliano.

CREATE TABLE "orden" (
"id_orden" bigint DEFAULT nextval('orden_seq') NOT NULL,
"orden_cambio_estado" int DEFAULT 1 NOT NULL,
"fecha_emision" timestamp DEFAULT now() NOT NULL,
"id_estado" varchar(10) NOT NULL,
"id_sociedad" varchar(10) NOT NULL,
"id_cuenta" varchar(10) NOT NULL,
"id_tipo_documento" varchar(10) NULL,
"numero_documento" varchar(50) NULL,
"id_manager" varchar(10) NULL,
"comentario" varchar(255) NULL,
"usuario" varchar(10) NULL,
"pedido_cancelacion" boolean NOT NULL DEFAULT false,
"cargada" boolean NOT NULL DEFAULT false,
"creado_por" varchar(30) NOT NULL,
"creado_el" timestamp NOT NULL,
"modificado_por" varchar(30),
"modificado_el" timestamp,
CONSTRAINT "orden_estado_fkey" FOREIGN KEY ("id_estado") REFERENCES
"estado"("id_estado"),
CONSTRAINT "orden_usuario_cuenta_fkey" FOREIGN KEY ("id_sociedad",
"id_cuenta", "id_tipo_documento", "numero_documento") REFERENCES
"usuario_cuenta"("id_sociedad", "id_cuenta", "id_tipo_documento",
"numero_documento"),
CONSTRAINT "orden_manager_fkey" FOREIGN KEY ("id_manager") REFERENCES
"manager"("id_manager"),
CONSTRAINT "orden_pkey" PRIMARY KEY ("id_orden")
);
CREATE TABLE orden_pasaje
(
id_orden_origen bigserial references orden(id_orden),
id_orden_destino bigserial references orden(id_orden),
creado_por varchar(30) NOT NULL,
creado_el timestamp NOT NULL,
modificado_por varchar(30),
modificado_el timestamp,
CONSTRAINT orden_pasaje_pkey PRIMARY KEY (id_orden_origen),
UNIQUE (id_orden_destino),
CHECK (id_orden_origen<>id_orden_destino)
);

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2005-04-01 20:50:55 Re: Backup Incremental
Previous Message Martín Marqués 2005-04-01 20:37:30 Re: Backup Incremental