From: | George Silva <georger(dot)silva(at)gmail(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Rules and conditions |
Date: | 2009-12-09 11:38:33 |
Message-ID: | 9aa147370912090338o97a6398t938db382ac99a6c8@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello guys,
Still having some trouble with this.
I'm trying to use a case when, but postgres is still giving me syntax error.
CREATE OR REPLACE RULE instead_update AS ON UPDATE TO foo
DO INSTEAD
(
CASE SELECT exists(SELECT 1 FROM versioning.foo_version_1 WHERE
OLD.oid = NEW.oid) as a WHEN a=true THEN
UPDATE versioning.foo_version_1 SET
oid = new.oid,
att1 = new.att1,
att2 = new.att2,
the_geom = new.the_geom,
status = 'UPDATE'
WHERE oid = new.oid;
WHEN a=false THEN
INSERT INTO versioning.foo_version_1(NEW.*,'UPDATE');
END
);
Any thoughts?
Thanks
On Wed, Dec 9, 2009 at 8:56 AM, George Silva <georger(dot)silva(at)gmail(dot)com> wrote:
> Thanks guys for clearing my head.
>
> George
>
> On Wed, Dec 9, 2009 at 7:07 AM, Leif Biberg Kristensen
> <leif(at)solumslekt(dot)org> wrote:
>> On Wednesday 9. December 2009 09.06.12 Guillaume Lelarge wrote:
>>> Le mercredi 9 décembre 2009 à 01:52:03, George Silva a écrit :
>>> > [...]
>>> > I can't seem to understand why a simples if is not working on the
>>> > creation of rules.
>>> >
>>> > I tried both ways (am i missing something?):
>>> >
>>>
>>> Sure. IF does not exist in SQL, and you can only put SQL statements in a
>> rule.
>>> Instead, you can call a stored function written in PL/pgsql which supports
>> IF
>>> structure.
>>
>> Or you can look up the CASE WHEN ... THEN ... ELSE .. END, construct, which
>> works very much like IF / THEN / ELSE:
>> <http://www.postgresql.org/docs/current/static/functions-conditional.html>
>>
>> --
>> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-general
>>
>
>
>
> --
> George R. C. Silva
>
> Desenvolvimento em GIS
> www.sextantegeo2.blogspot.com
>
--
George R. C. Silva
Desenvolvimento em GIS
www.sextantegeo2.blogspot.com
From | Date | Subject | |
---|---|---|---|
Next Message | Postgre Novice | 2009-12-09 11:53:18 | ERROR: could not open relation with OID 59132 |
Previous Message | Stephen Tyler | 2009-12-09 11:24:38 | Re: Excessive (and slow) fsync() within single transaction |