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=id2 where 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,

-- 
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql

Reply via email to