Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2008, 14:10
Fabian olmos
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 3 meses
Puntos: 0
Clave Foranea

hola amigos, me encuentro haciendo una base de datos y cunado intento hacer una clave foranea entre dos tablas me dice lo siguiente:

ERROR: there is not unique constraint matching given keys for referenced table "visitantes".

la rpimera tabla "visitantes"

CREATE TABLE visitantes.visitantes
(
cedula integer NOT NULL, -- cedula del visitante.
nombre character varying(50) NOT NULL, -- nombre del visitante.
apellido character varying(50) NOT NULL, -- apellido del visitate.
organismo character varying(255) NOT NULL, -- organismo al cual representa.
imagen character varying(20) NOT NULL, -- foto del visitantel.
contacto integer NOT NULL, -- cedula de la persona de contacto con la institucion.
entrada time without time zone NOT NULL, -- hora de entrada a la institucion.
salida time without time zone, -- salida del visitante de la insitucion.
num_pase character(4) NOT NULL, -- numero de pase asignado.
CONSTRAINT visitantes_pkey PRIMARY KEY (cedula, entrada),
CONSTRAINT visitantes_contacto_fkey FOREIGN KEY (contacto)
REFERENCES acceso.empleado (cedula) MATCH FULL
ON UPDATE CASCADE ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED,
CONSTRAINT visitantes_num_pase_fkey FOREIGN KEY (num_pase)
REFERENCES visitantes.pases (num_pase) MATCH FULL
ON UPDATE CASCADE ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED
)

segunda tabla "activacion"

CREATE TABLE visitantes.activacion
(
cedula integer NOT NULL, -- cedula del visitante.
num_pase character(4) NOT NULL, -- numero de pase que le fue asiganado a dicho visitante.
fecha date NOT NULL, -- fecha en la que se realizo la accion.
activo boolean NOT NULL, -- indica si dicho pase esta activo o no.
CONSTRAINT activacion_pkey PRIMARY KEY (cedula, fecha),
CONSTRAINT activacion_num_pase_fkey FOREIGN KEY (num_pase)
REFERENCES visitantes.pases (num_pase) MATCH FULL
ON UPDATE CASCADE ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED
)

yo quiero hacer una clave foranea entre el campo cedula de la tbla visitantes con el campo cedula de la tabla activacion.


gracias de antemano, salu2.