safely exchanging primary keys?
От | Louis-David Mitterrand |
---|---|
Тема | safely exchanging primary keys? |
Дата | |
Msg-id | 20100524085101.GA21249@apartia.fr обсуждение исходный текст |
Ответы |
Re: safely exchanging primary keys?
Re: safely exchanging primary keys? Re: safely exchanging primary keys? |
Список | pgsql-sql |
Hi, I have this function which swaps primary keys for cabin_types (so that id_cabin_type ordering reflects natural data ordering): CREATE OR REPLACE FUNCTION swap_cabin_types(id1 integer, id2 integer) RETURNS integer AS $$declare tmp integer;begin tmp := nextval('cabin_type_id_cabin_type_seq'); update cabin_type set id_cabin_type=tmp where id_cabin_type=id1; update cabin_type set id_cabin_type=id1 where id_cabin_type=id2; update cabin_type set id_cabin_type=id2where id_cabin_type=tmp; return tmp;end;$$LANGUAGE plpgsql; 'id_cabin_type' is a foreign key for two other tables, 'cabin_category' and 'alert_cabin_type', which have an "on update cascade" clause. When I run that function it seems the foreign keys are not properly updated and the data ends up in a mess. Did I forget something? Thanks,
В списке pgsql-sql по дате отправления: