pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Guillaume Lelarge <guillaume@lelarge.info>
To: F. BROUARD / SQLpro <sqlpro@club-internet.fr>
Cc: pgsql-sql@postgresql.org
Subject: Re: [GENERAL] Creating rule for sliding data
Date: Sun, 09 Oct 2011 19:07:24 +0200
Message-ID: <1318180045.2107.2.camel@localhost.localdomain> (raw)
In-Reply-To: <4E91D0BC.2030406@club-internet.fr>
References: <4E917601.4040700@club-internet.fr>
	<4E91D0BC.2030406@club-internet.fr>

Hi,

On Sun, 2011-10-09 at 18:50 +0200, F. BROUARD / SQLpro wrote:
> I am answering to myseilf...
> 
> the good syntax is something like :
> 
> 
> CREATE RULE R_U_MSR_BEFORE2000x
> AS
> ON UPDATE TO T_MESURE_MSR
>     WHERE ( NEW.MSR_DATE < DATE '2000-01-01' )
> DO INSTEAD
> (
> -- rows does not change partition :
>    UPDATE T_MESURE_BEFORE2000_MSR
>    SET MSR_ID     = NEW.MSR_ID,
>        MSR_DATE   = NEW.MSR_DATE,
>        MSR_MESURE = NEW.MSR_MESURE
>    WHERE ( OLD.MSR_DATE < DATE '2000-01-01' );
> -- rows does change partition (first INSERT NEWs then DELETE OLDs)
>    INSERT INTO T_MESURE_MSR
>    SELECT MSR_ID,
>           MSR_DATE,
>           MSR_MESURE
>    FROM   NEW
>    WHERE NOT ( OLD.MSR_DATE < DATE '2000-01-01' ); ;
>    DELETE FROM T_MESURE_MSR
>    WHERE  MSR_ID = OLD.MSR_ID
>      AND  MSR_DATE = OLD.MSR_DATE
>      AND  MSR_MESURE = OLD.MSR_MESURE
>      AND  NOT ( OLD.MSR_DATE < DATE '2000-01-01' );
> );
> 
> The problem is nowhere in the doc there is a mention where much more 
> than one commande must be place into brackets !
> 

As a matter of fact, it does:

CREATE [ OR REPLACE ] RULE name AS ON event
 TO table [ WHERE condition ]
 DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) }

                                             ^                       ^
                                             |                       |
See -----------------------------------------+------------------------

Extract from
http://www.postgresql.org/docs/9.1/interactive/sql-createrule.html


-- 
Guillaume
  http://blog.guillaume.lelarge.info
  http://www.dalibo.com




view thread (4+ messages)  latest in thread

Message-ID: <1318180045.2107.2.camel@localhost.localdomain>
Permalink:  ../1318180045.2107.2.camel@localhost.localdomain/
Also on:    postgresql.org/message-id/1318180045.2107.2.camel@localhost.localdomain

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: guillaume@lelarge.info, sqlpro@club-internet.fr
  Subject: Re: [GENERAL] Creating rule for sliding data
  In-Reply-To: <1318180045.2107.2.camel@localhost.localdomain>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox