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