It seems that foreign key does not work in current, if specified with
primary key definition. Take a look at following example(works in
7.0.2.):

test=# CREATE TABLE PKTABLE ( ptest1 int, ptest2 int, ptest3 int, ptest4 text, PRIMARY 
KEY(ptest1, ptest2, ptest3) );
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'pktable_pkey' for table 
'pktable'
CREATE
test=# CREATE TABLE FKTABLE ( ftest1 int, ftest2 int, ftest3 int, ftest4 int, primary 
key (ftest1,ftest2,ftest3,ftest4),  CONSTRAINT constrname3 FOREIGN KEY(ftest1, ftest2, 
ftest3) REFERENCES PKTABLE);
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'fktable_pkey' for table 
'fktable'
NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
ERROR:  columns referenced in foreign key constraint not found.

However, if primary key definition is not used with fkey, it works.

test=# CREATE TABLE FKTABLE ( ftest1 int, ftest2 int, ftest3 int, ftest4 int, 
CONSTRAINT constrname3 FOREIGN KEY(ftest1, ftest2, ftest3) REFERENCES PKTABLE);
NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
CREATE

Any thoughts?
--
Tatsuo Ishii

Reply via email to