Re: RE:REFERENCES - Mailing list pgsql-general

From Darren Ferguson
Subject Re: RE:REFERENCES
Date
Msg-id Pine.LNX.4.10.10203102232310.10413-100000@thread.crystalballinc.com
Whole thread Raw
In response to RE:REFERENCES  ("ngterry" <ngterry@sinaman.com>)
List pgsql-general
The reason it wont let you create the foreign key is because the field is
not unique aso the key would not know which row in the purchase table that
was refered too.

This below will work


CREATE TABLE purchase (

   id int,
   po int,
   date date,
    PRIMARY KEY(id),
    UNIQUE(po)
);

CREATE TABLE lcopen (
    lc numeric,
    po int REFERENCES purchase (po),
    PRIMARY KEY (lc)
);

Hope this helps

Darren
Darren Ferguson

On Mon, 11 Mar 2002, [big5] ngterry wrote:

>
> I am sorry what I am trying is:
>
> >CREATE TABLE purchase (id int, po int, date date, PRIMARY KEY (id));
> >
> >CREATE TABLE lcopen (lc numeric, po int, PRIMARY KEY (lc));
>
> replace with:
> CREATE TABLE lcopen (lc numeric, po int REFERENCES purchase (po), PRIMARY KEY (lc));
> but there is an error and I do not how to correct that.
>
> >
> >CREATE TABLE lcreceive (
> >   id int,
> >   lc numeric REFERENCES lcopen(lc),
> >   purid int REFERENCES purchase(id)
> >)
> >;
> >
> >I think this is what you are asking this will effectively make lc and
> >purid in lcreceive foreign keys of the other tables
> >
> >Darren Ferguson
> >
> >On Sun, 10 Mar 2002, [big5] ngterry wrote:
> >
> >>
> >> Hi!
> >>
> >> I am just a newbie in postgresql.  What if:
> >>
> >> CREATE TABLE purchase (id int, po int, date date, PRIMARY KEY (id));
> >>
> >> CREATE TABLE lcopen (lc numeric, po int, PRIMARY KEY (lc));
> >>
> >> CREATE TABLE lcreceive (id int, lc numeric REFERENCES lcopen, purid int REFERENCES purchase);
> >>
> >> How do I refer the keywords po in table lcopen to table purchase the po keywords?  I am quite confuse, since I
haveannounce id in table purchase as PRIMARY KEY.  I do not know how to key another keywords. 
> >>
> >> Best regards,
> >>
> >> Terence
> >> ==================================================================
> >> �s��SMS�u�T�Ghttp://sms.sina.com.hk
> >> �������ˤͶǤW�L������
> >> 50MB �q�l�l�� �Ghttp://sinamail.sina.com.hk
> >>
> >>
> >>
> >>
> >> ---------------------------(end of broadcast)---------------------------
> >> TIP 4: Don't 'kill -9' the postmaster
> >>
> >
> >
> ==================================================================
> �s��SMS�u�T�Ghttp://sms.sina.com.hk
> �������ˤͶǤW�L������
> 50MB �q�l�l�� �Ghttp://sinamail.sina.com.hk
>
>
>


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: problem with upgrade from 6.5 -> 7.2 (fwd)
Next
From: Edmund Lim Chi Chung
Date:
Subject: [General] Unable to identify an operator '=' for types 'numeric' and 'double precision' You will have to retype this query using and explicit cast