From: | Martín Marqués <martin(at)bugs(dot)unl(dot)edu(dot)ar> |
---|---|
To: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>, nuria montoya rodriguez <okeona(at)hotmail(dot)com> |
Cc: | pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx |
Subject: | Re: [Pgsql-ayuda] problemas con foreign key |
Date: | 2004-01-31 16:53:17 |
Message-ID: | 200401311351.37826.martin@bugs.unl.edu.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El Vie 30 Ene 2004 20:51, Alvaro Herrera escribió:
> On Fri, Jan 30, 2004 at 06:06:26PM +0000, nuria montoya rodriguez wrote:
>
> > CREATE TABLE table_name(
> > ...
> > CONSTRAINT constraint_name FOREIGN KEY(campo1,campo2) REFERENCES
> > ref_table(ref_campo1,ref_campo2));
> > *campo1 y campo2 son las únicas claves primarias de esta tabla.
> > *ref_campo1 y ref_campo2 son claves primarias de ref_table, pero hay otra
> > más en está tabla(ref_table)
> >
> > ERROR: UNIQUE constraint matching give keys for referenced table
> > "ref_table" not found.
>
> A ver ... el ref_table tienes UNIQUE ref_campo1 y UNIQUE ref_campo2?
> Si ese es el caso, no se puede. Lo que necesitas es
> UNIQUE (ref_campo1, ref_campo2).
Si queremos ponernos en exquisitos, deberiamos hacer algo como:
PRIMARY KEY (ref_campo1, ref_campo2)
Mantiene la unicidad del par de campos, y no permite que ninguno de los campos
de la llave primaria tomen el valor nulo (NULL).
--
select 'mmarques' || '@' || 'unl.edu.ar' AS email;
---------------------------------------------------------
Martín Marqués | Programador, DBA
Centro de Telemática | Administrador
Universidad Nacional
del Litoral
---------------------------------------------------------
From | Date | Subject | |
---|---|---|---|
Next Message | Martín Marqués | 2004-01-31 16:56:00 | Re: [Pgsql-ayuda] Referencias entre bases de datos |
Previous Message | Sergio Arroyo | 2004-01-31 16:51:07 | RE: [Pgsql-ayuda] problemas con accesos concurrentes |