From: | "Keith Worthington" <keithw(at)narrowpathinc(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, KeithW(at)narrowpathinc(dot)com |
Cc: | "PostgreSQL Novice" <pgsql-novice(at)postgresql(dot)org> |
Subject: | Re: Writing to dependent tables in a function |
Date: | 2005-01-11 19:49:31 |
Message-ID: | 20050111194931.M54264@narrowpathinc.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
> "Keith Worthington" <keithw(at)narrowpathinc(dot)com> writes:
> > I have written a function that moves data from a load table
> > (data_transfer.tbl_sales_order_line_item) to two data tables
> > (sales_order.tbl_line_item & sales_order.tbl_item_description) the second of
> > which is dependent on the first. When I run the function manually (create it
> > as a function returning an integer and execute it after loading the data witht
> > the COPY command) it works fine. When I convert it to a TRIGGER and COPY data
> > to the load table I get an error that says a foreign key constraint is being
> > violated.
>
> Why are you iterating over the whole table in a FOR EACH ROW trigger?
> At best that's exceedingly inefficient. If you don't want to change
> the function then it should probably be an AFTER STATEMENT trigger.
>
> The example works with no error for me in 8.0, but in 7.4 I do get a
> failure. I think the difference has to do with the delayed firing of
> AFTER triggers in 7.4, but I'm not entirely sure why that's affecting
> anything.
>
> regards, tom lane
Hi Tom,
Thanks for the reply. The brutally honest answer to your question is
ignorance. As you can see from my earlier post I am using COPY to place one
or more records into the transfer table. I would prefer the trigger fire just
once after all the data has been loaded but I have no idea how to make it do
that. I can certainly understand why it would be more efficient.
Kind Regards,
Keith
______________________________________________
99main Internet Services http://www.99main.com
From | Date | Subject | |
---|---|---|---|
Next Message | Ramon Orticio | 2005-01-12 05:31:32 | pgAdminIII for linux |
Previous Message | Vishal Kashyap @ [SaiHertz] | 2005-01-11 19:17:46 | Re: DELETE & INSERT in a function |