Re: Foreign key
От | Michael Fuhr |
---|---|
Тема | Re: Foreign key |
Дата | |
Msg-id | 20050327074720.GB46207@winnie.fuhr.org обсуждение исходный текст |
Ответ на | Foreign key (<ASAKALAL@bouyguestelecom.fr>) |
Список | pgsql-sql |
On Fri, Mar 25, 2005 at 04:31:16PM +0100, ASAKALAL@bouyguestelecom.fr wrote: > > When i add table with foreign key in my database, this error return : < > number of referencing and referenced colums for foreign key disagree>. Apparently the referencing key (the foreign key specification) has a different number of columns than the referenced key (the primary key or other unique key in the referenced table). Here's an example that illustrates the problem: CREATE TABLE foo ( pk1 integer NOT NULL, pk2 integer NOT NULL, PRIMARY KEY (pk1, pk2) -- 2-column primarykey ); CREATE TABLE bar ( fk integer NOT NULL REFERENCES foo -- 1-column foreign key ); ERROR: number ofreferencing and referenced columns for foreign key disagree In the above example we need a 2-column foreign key: CREATE TABLE bar ( fk1 integer NOT NULL, fk2 integer NOT NULL, FOREIGN KEY (fk1, fk2) REFERENCES foo ); Here's another example that references a 1-column unique key that isn't a primary key: CREATE TABLE foo ( pk1 integer NOT NULL, pk2 integer NOT NULL, x integer NOT NULL, PRIMARY KEY (pk1,pk2), UNIQUE (x) ); CREATE TABLE bar ( fk integer NOT NULL REFERENCES foo (x) ); If these examples don't help, then please post the table definitions you're working with and explain what you'd like to do. -- Michael Fuhr http://www.fuhr.org/~mfuhr/
В списке pgsql-sql по дате отправления: