Re: Foreign Key Problem
От | Dennis |
---|---|
Тема | Re: Foreign Key Problem |
Дата | |
Msg-id | 9fp1e8$153g$1@news.tht.net обсуждение исходный текст |
Ответ на | Re: Foreign Key Problem (Stephan Szabo <sszabo@megazone23.bigpanda.com>) |
Список | pgsql-general |
Thanks, For right now, we'll get around the problem by adding a check to table B col2 varchar(20) not null check ( col2 != col1 ) Then the foreign key will never have a problem. -Dennis Stephan Szabo wrote: > On Thu, 7 Jun 2001, Dennis Muhlestein wrote: > >> Is This s bug: >> >> >> create table A >> ( >> key varchar(20) not null primary key >> ); >> >> create table B >> ( >> id serial not null primary key, >> col1 varchar(20) not null, >> col2 varchar(20) not null >> ); >> >> alter table B create constraint fk_col1 foreign key ( col1 ) references A >> ( key ) on delete cascade on update cascade; >> >> alter table B create constraint fk_col2 foreign key ( col2 ) references A >> ( key ) on delete cascade on update cascade; >> >> >> SQL Creation and operation works fine. In the case that one row in table >> B where col1 = col2, if I update A.key, I'll get a referential integrity >> violation?? >> >> ie: ERROR: fk_col1 referential integrity violation - key referenced from >> B not found in A. >> >> Is there a way to make this type of constraint work with the update? >> >> If not, is there a way to create a constraint so that col1 != col2 is >> inforced? > > I believe this is a bug. I'm pretty sure that its an issue of the first > update seeing an invalid state. What I'm working on now may make this > work (I'm doing some work to the triggers now -- checking that the state > change hasn't been undone by some later change between time of action > and time of check). > > I'm not sure of a work around in the meantime. > > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html >
В списке pgsql-general по дате отправления: