Re: Trigger Question

From: Thomas Braad Toft <pgsql-general(at)magicx(dot)dk>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Trigger Question
Date: 2005-01-05 22:05:20
Message-ID: 41DC64A0.10702@magicx.dk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Terry Lee Tucker wrote:
> 1) INSERT INTO logs (carr_code, ..., ..., ...) VALUES('ABCDEFG', ..., ...);
> logs is table A in my question
>
> 2) logs_insert fires (This is a AFTER INSERT trigger)
>
> 3) in this trigger, I need to do the following:
> update avlds set carr_code = new.carr_code where avlds.recid = ??;
> avlds is table B in my question
> The questions marks indicate the first piece of data that I want to
> dynamically pass to the trigger.
>
> 4) in the same trigger:
> update tract set order_num = avlds.order_num where tract.recid = ??;
> tract is table C in my question
> The question marks refer to the second piece of data that I want to pass
> dynamically into the trigger.
>
> In other terms, when the user creates a logs record that assigns a truck to a
> load, I need to update specific rows in two other tables, avlds, and tract. I
> was wanting to do this from the trigger level, but I will need the unique
> serial key of each of the existing records in avlds and tract. These two keys
> comprise the "dynamic" part of the question. I was just wondering if there is
> some way of passing dynamic data into a trigger. I don't believe there is,
> but I thought I would ask.

I cannot figure out if you are supposed to use the same value as ??, but
I believe I would just create a function (which takes parameters) and
then call that from the logs_insert trigger. That way I believe you have
a much better control of the flow of your updates.

Hope that helps.

--
Thomas Braad Toft

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Alex Turner 2005-01-05 22:09:24 Re: Trigger Question
Previous Message MargaretGillon 2005-01-05 21:51:58 SELECT WHERE NOT, is not working