Oleg Bartunov wrote:
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

Ah - IIRC there *was* nothing wrong with it when those notes were written (and I need to update them, clearly). Back then SERIAL implied UNIQUE too, but that was changed (in 7.3 I believe).


--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
     joining column's datatypes do not match

Reply via email to