Обсуждение: not null error in trigger on unrelated column

Поиск
Список
Период
Сортировка

not null error in trigger on unrelated column

От
CSN
Дата:
I have a members table and an items table. Every time items.member_id or items.active gets
changed, members.items_submitted and members.items_approved gets updated by a trigger on items. I
added an "admin" column to members, and now this happens:

=> update items set active = false where member_id=38;
ERROR:  null value in column "admin" violates not-null constraint
CONTEXT:  SQL statement "update members set items_approved=items_approved-1 where id= $1 "
PL/pgSQL function "update_member_item_counts" line 54 at SQL statement

The relevant part of the (after) trigger function on items is:

ELSIF OLD.active is true and NEW.active is false then
    update members set
        items_approved=items_approved-1
        where id=NEW.member_id;
END IF;

Is it necessary to drop and recreate triggers and/or corresponding functions after changing a
table's schema? I don't know how something is trying to set members.admin to null (table members
has no triggers).

thanks
csn
Postgresql 8.0.x



__________________________________
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com

Re: not null error in trigger on unrelated column

От
CSN
Дата:
I removed the not null contraint on members.admin and "update items set active = false where
member_id=38" results in the count columns in members getting updated AND members.admin getting
set to NULL. Really bizarre.

I dropped the trigger function and the trigger, then recreated both, and now they both appear to
function properly. I don't remember seeing anything in the docs stating that this is necessary, so
I guess perhaps it's a bug?

csn


--- CSN <cool_screen_name90001@yahoo.com> wrote:

> I have a members table and an items table. Every time items.member_id or items.active gets
> changed, members.items_submitted and members.items_approved gets updated by a trigger on items.
> I
> added an "admin" column to members, and now this happens:
>
> => update items set active = false where member_id=38;
> ERROR:  null value in column "admin" violates not-null constraint
> CONTEXT:  SQL statement "update members set items_approved=items_approved-1 where id= $1 "
> PL/pgSQL function "update_member_item_counts" line 54 at SQL statement
>
> The relevant part of the (after) trigger function on items is:
>
> ELSIF OLD.active is true and NEW.active is false then
>     update members set
>         items_approved=items_approved-1
>         where id=NEW.member_id;
> END IF;
>
> Is it necessary to drop and recreate triggers and/or corresponding functions after changing a
> table's schema? I don't know how something is trying to set members.admin to null (table members
> has no triggers).
>
> thanks
> csn
> Postgresql 8.0.x
>
>
>
> __________________________________
> Yahoo! FareChase: Search multiple travel sites in one click.
> http://farechase.yahoo.com
>






__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com