SQL for CREATE RULE

From: Bryan Buchanan <bryanb(at)webbtide(dot)com(dot)au>
To: pgsql-general(at)postgresql(dot)org
Subject: SQL for CREATE RULE
Date: 2001-07-16 07:10:56
Message-ID: 3B529380.92AF8640@webbtide.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

Would anyone know if it's possible to define a rule to do the folowing.

I have two tables:

journal_master (serial #, account, date, debit $, credit $)
journal_summary (account, date, debit $, credit $)

each time a transaction occurs, a new journal_master row is
added, and the cumulative amounts added to the summary table.

I can have a rule like

CREATE RULE js_update AS
ON INSERT TO journal_master
DO
UPDATE journal_summary set debit = debit + new.debit,
set credit = credit + new.credit where account = new.account and
date = new.date;

My problem is that if the journal_summary row doesn't exist, I
really want to an INSERT. In pseudo code, something like:

CREATE RULE js_update AS
ON INSERT TO journal_master
DO
if journal summary row exists for this date and account then
UPDATE journal_summary set debit = debit + new.debit,
set credit = credit + new.credit where account = new.account and
date = new.date
else
INSERT INTO journal_summary (account, date, debit, credit)
VALUES (new.account, new.date, new.debit, new.credit)
end

Is it possible ?

Thanks,

Bryan

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alessio Bragadini 2001-07-16 09:32:36 Re: Translators wanted
Previous Message Oleg Bartunov 2001-07-16 06:27:32 Re: [HACKERS] Translators wanted