Re: trigger question

Поиск
Список
Период
Сортировка
От Scott Shattuck
Тема Re: trigger question
Дата
Msg-id E9086EC3AC524A4AABE0B43F2DF3ABCBA513F2@pcadntexch01.planetcad.com
обсуждение исходный текст
Ответ на trigger question  (Larry Rosenman <ler@lerctr.org>)
Список pgsql-sql
<br /><br /><p><font size="2">> -----Original Message-----</font><br /><font size="2">> From: Larry Rosenman [<a
href="mailto:ler@lerctr.org">mailto:ler@lerctr.org</a>]</font><br/><font size="2">> Sent: Thursday, May 16, 2002
11:51AM</font><br /><font size="2">> To: josh@agliodbs.com</font><br /><font size="2">> Cc:
pgsql-sql@postgresql.org</font><br/><font size="2">> Subject: Re: [SQL] trigger question</font><br /><font
size="2">></font><br /><font size="2">> </font><br /><font size="2">> On Thu, 2002-05-16 at 12:49, Josh Berkus
wrote:</font><br/><font size="2">> > Larry,</font><br /><font size="2">> > </font><br /><font size="2">>
>> Is there a way in PL/pgSQL to have a trigger look at the </font><br /><font size="2">> fields in
a</font><br/><font size="2">> > > %ROWTYPE variable to look for changes? </font><br /><font size="2">> >
></font><br /><font size="2">> > > I'm looking to be able to log the fields that are </font><br /><font
size="2">>different between old</font><br /><font size="2">> > > and new in a trigger,  but don't want to
haveto list </font><br /><font size="2">> each field (It</font><br /><font size="2">> > > changes,
occasionally,but it changes).  I'd also like to add a</font><br /><font size="2">> > > timestamp and flag
fieldwhen I store the record in the </font><br /><font size="2">> log table. </font><br /><font size="2">> >
></font><br /><font size="2">> > > Am I just SOL, or is there a way to do this? (7.2.1, if </font><br
/><fontsize="2">> it matters). </font><br /><font size="2">> > </font><br /><font size="2">> > I'm
prettysure there is a way to do what you want, and </font><br /><font size="2">> it's probably simpler </font><br
/><fontsize="2">> > than you think.  </font><br /><font size="2">> > </font><br /><font size="2">> >
However,I need you to be more explicit, with examples.  I </font><br /><font size="2">> can't quite figure
</font><br/><font size="2">> > out what is is you're trying to do.</font><br /><font size="2">> >
</font><br/><font size="2">> </font><br /><font size="2">> given the following table:</font><br /><font
size="2">>CREATE TABLE "networks" (</font><br /><font size="2">>       "netblock" cidr,</font><br /><font
size="2">>      "router" integer,</font><br /><font size="2">>       "interface" character
varying(256),</font><br/><font size="2">>       "dest_ip" inet,</font><br /><font size="2">>       "mis_token"
character(16),</font><br/><font size="2">>       "assigned_date" date,</font><br /><font size="2">>      
"assigned_by"character varying(256),</font><br /><font size="2">>       "justification_now" integer,</font><br
/><fontsize="2">>       "justification_1yr" integer,</font><br /><font size="2">>       "cust_asn"
integer,</font><br/><font size="2">>       "comments" character varying(2048),</font><br /><font size="2">>      
"other_reference"character varying(256),</font><br /><font size="2">>       "parent_asn" integer,</font><br /><font
size="2">>      "status" integer NOT NULL,</font><br /><font size="2">>       "purpose" integer,</font><br
/><fontsize="2">>       "last_update_by" character varying(256),</font><br /><font size="2">>      
"last_update_at"timestamp with time zone,</font><br /><font size="2">>       "customer_reference" integer,</font><br
/><fontsize="2">>       "natblock" cidr</font><br /><font size="2">> );</font><br /><font size="2">>
</font><br/><font size="2">> I want to log the changes to it in a trigger.  Occasionally </font><br /><font
size="2">>we add fields to it, so </font><br /><font size="2">> I'd like the trigger to know about them
automatically. I </font><br /><font size="2">> need to log old/new for just the fields</font><br /><font
size="2">>that change (and the netblock, which is the primary key). </font><br /><font size="2">> </font><br
/><fontsize="2">> I realize I can build up the insert, but that seems to be the </font><br /><font size="2">>
hardway. </font><br /><font size="2">> </font><p><font size="2">It might not be what you're looking for but another
possibilitymay be to use a function to add columns to the table and have the function update the trigger at that time.
Thatwould at least address the table/trigger consistency issue.</font><p><font size="2">ss</font><br /><p><font
size="2">ScottShattuck</font><br /><font size="2">Technical Pursuit Inc.</font> 

В списке pgsql-sql по дате отправления:

Предыдущее
От: Stephan Szabo
Дата:
Сообщение: Re: Constraint problem
Следующее
От: Josh Berkus
Дата:
Сообщение: Re: Constraint problem