On Fri, Sep 02, 2005 at 04:43:15PM +0300, Achilleus Mantzios wrote:
> O Jerome Alet ?????? ???? Sep 2, 2005 :
>
> > I've got 4 tables :
> >
> > CREATE TABLE tableA (id SERIAL PRIMARY KEY NOT NULL,
> > blahA TEXT);
> >
> > CREATE TABLE tableB (id SERIAL PRIMARY KEY NOT NULL,
> > blahB TEXT);
> >
> > CREATE TABLE tableC (id SERIAL PRIMARY KEY NOT NULL,
> > ida INT4 REFERENCES tableA(id),
> > idb INT4 REFERENCES tableB(id),
> > blahC TEXT);
> >
> > CREATE TABLE tableD
> > (id SERIAL PRIMARY KEY NOT NULL,
> > ida INT4,
> > idb INT4,
> > blahC TEXT,
> > CONSTRAINT checkAB FOREIGN KEY (ida, idb) REFERENCES tableC(ida, idb));
>
> The above statement is in error.
> In order to create FK to another table (tableC), you must do this
> on tableC's PK (id) or some UNIQUE key in general.
sorry, while adapting the code for the purpose of posting here,
I've forgotten that I've this line in my real script :
CREATE UNIQUE INDEX tableCindex ON tableC (ida, idb);
So I think tableD should be OK (BTW I don't have any error)
Thanks for your help
bye
Jerome Alet