Re: [Pgsql-ayuda] problemas con foreign key

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
---------------------------------------------------------

In response to

Browse pgsql-es-ayuda by date

  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