Re: How to notice column changes in trigger
От | Christoph Haller |
---|---|
Тема | Re: How to notice column changes in trigger |
Дата | |
Msg-id | 3E688AE5.5714092D@rodos.fzk.de обсуждение исходный текст |
Ответ на | How to notice column changes in trigger (Andreas Pflug <Andreas.Pflug@web.de>) |
Ответы |
Re: How to notice column changes in trigger
|
Список | pgsql-sql |
> > How can I detect whether a column was changed by an update command > inside a trigger? > > create table test(a int, b int, c int, primary key(a)) > > b and c should be updated inside an update trigger if not modified by > the statement itself > > 1) update test set a=0 -> trigger does its work > 2) update test set a=0, b=1, c=2 -> trigger does nothing > 3) update test set a=0, b=b, c=c -> trigger does nothing, but content of > a and b dont change either although touched > > What I'm looking for is something like > IF NOT COLUMN_TOUCHED(b) THEN ... > For MSSQL, this would be coded as IF NOT UPDATE(b) .. > > IF OLD.b=NEW.b will not work, case 3) will falsely execute the trigger code. > Sorry, but I don't get it. Does > b and c should be updated inside an update trigger if not modified by > the statement itself mean b=b not modified, b=1 modified even if b was 1 before ? So you want the trigger executed only if assignments to b and/or c do not appear within the update command. Right? Regards, Christoph
В списке pgsql-sql по дате отправления: