Thread: serial as FK ?

serial as FK ?

From
Oleg Bartunov
Date:
Hi there,

what's wrong to use SERIAL as FK without explicit PRIMARY KEY or UNIQUE ?

qq=# create table t1( id serial);
NOTICE:  CREATE TABLE will create implicit sequence "t1_id_seq" for "serial" column "t1.id"
CREATE TABLE
qq=# create table t2( id2 int4 references t1(id));
ERROR:  there is no unique constraint matching given keys for referenced table "t1"

btw, Richard, I noticed this problem when looked into your example database
http://www.archonet.com/pgdocs/chap-exdb.html#EXAMPLE-TABLES
    Regards,        Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83


Re: serial as FK ?

From
Stephan Szabo
Date:
On Mon, 28 Feb 2005, Oleg Bartunov wrote:

> what's wrong to use SERIAL as FK without explicit PRIMARY KEY or UNIQUE ?

Serial isn't enough to guarantee uniqueness as required by foreign keys.


Re: serial as FK ?

From
Oleg Bartunov
Date:
On Mon, 28 Feb 2005, Stephan Szabo wrote:

>
> On Mon, 28 Feb 2005, Oleg Bartunov wrote:
>
>> what's wrong to use SERIAL as FK without explicit PRIMARY KEY or UNIQUE ?
>
> Serial isn't enough to guarantee uniqueness as required by foreign keys.

you're certainly right !

>
    Regards,        Oleg
_____________________________________________________________
Oleg Bartunov, sci.researcher, hostmaster of AstroNet,
Sternberg Astronomical Institute, Moscow University (Russia)
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(095)939-16-83, +007(095)939-23-83