Am Mittwoch, 27. Juli 2005 09:47 schrieb Philippe Lang:
> Thanks Tom, thanks Janning,
>
> I found triggers very convenient to do different tasks in the database, and
> these tasks go far beyond what we can do in rules, Janning.
Right. There are some things that can't be done with rules.
> When a line is being inserted in an order, the insert trigger automatically
> inserts data in a subtable of the order line, for example. In this
> subtable, there are informations regarding the "planning" of the order.
> People can use the GUI to populate the order, but things won't break if the
> user opens the database table directly, which can happen sometimes. Without
> the trigger, an "insert function click" would have to be used each time an
> order line is being added, and this is not that effective from a
> user-experience point of view, I think. Or would require a lot a
> client-coding.
As far as i understand your example it can be done with rules, too.
> Now the use of a trigger has a drawback: when you want to duplicate an
> order, for example. During the duplication function, I would like to
> disable the trigger, in order to make a copy of the order, order lines, and
> order lines subtable data. This is much easier than keeping the trigger,
> and having to delete default data it inserts in the new order.
just a thought: maybe you can insert a column "copyof_id" in your tabel and
mark it if you copy orders. The trigger can check NEW.copyof and quit his
work if it is marked.
With rules there is a nice advantage when copying: rules are not invoked by
COPY command (but sometimes it is a disadvantage if you need the rule
invocation)
kind regards
janning