pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andreas Pflug <Andreas.Pflug@web.de>
To: pgsql-sql@postgresql.org
Subject: Re: How to notice column changes in trigger
Date: Fri, 07 Mar 2003 19:10:14 +0100
Message-ID: <3E68E086.6020303@web.de> (raw)
In-Reply-To: <200303070941.41276.josh@agliodbs.com>
References: <3E6874CD.4090501@web.de>
	<200303070941.41276.josh@agliodbs.com>

Josh Berkus wrote:

>Andreas,
>
>  
>
>>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
>>    
>>
>
>  
>
>>IF OLD.b=NEW.b will not work, case 3) will falsely execute the trigger
>>code.
>>    
>>
>
>I still don't get why you'd want to do this.   Can you provide are real-world 
>example where there is a difference between setting B=B and not updating B?
>
>  
>
I do.
It's about tracking changing user and timestamp. Normally, all inserts 
and updates won't touch the b and c columns, and they are handled using 
triggers and/or default values.But sometimes, I'd like to update some 
columns (other than b or c) WITHOUT having changed b or c. This could 
happen for some import tasks, for example. In this case, the 
user/timestamp from the exporting database should be replicated, not 
altered. In other cases, some maintenance procedure should calculate a 
column different from b and c, which would lead to timestamp set to lets 
say midnight, and the user to "serviceProcess" which would destroy the 
original data. In this case, I'd set b and c to the original data. 
That's the way I can handle this with MSSQL.








view thread (9+ messages)  latest in thread

Message-ID: <3E68E086.6020303@web.de>
Permalink:  ../3E68E086.6020303@web.de/
Also on:    postgresql.org/message-id/3E68E086.6020303@web.de

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: Andreas.Pflug@web.de
  Subject: Re: How to notice column changes in trigger
  In-Reply-To: <3E68E086.6020303@web.de>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox