help with rules please

Поиск
Список
Период
Сортировка
От peter pilsl
Тема help with rules please
Дата
Msg-id 4486B71D.6000102@goldfisch.at
обсуждение исходный текст
Ответы Re: help with rules please  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
Re: help with rules please  (Rafal Pietrak <rafal@zorro.isa-geek.com>)
Список pgsql-general
I dont succeed with writing my rules proper.

I need the following rules:

when I INSERT/UPDATE to a table and a certain condition is true then a
special field in this data-row should be updated to.


I came as far:

# \d testa
    Table "public.testa"
  Column | Type | Modifiers
--------+------+-----------
  x1     | text |
  x2     | text |
Rules:
     r1 AS
     ON INSERT TO testa
    WHERE new.x1 = 'house'::text DO  UPDATE testa SET x2 = 'mouse'::text


this works fine.  When I insert a row with x1=house then x2 gets set to
mouse.

BUT:

i) it always updates all rows in the tables instead of only the current
row. I guess this is a huge performance-lack on big tables :)  I tried
to get a where  oid=new.oid in or something like that, but it did not work.

ii)  the above rule does not work on UPDATE, cause I get a  deep
recursion. Each update causes another update on the same table which
makes postgres break with a nested.loop -error (happily postgres detects
the recursion :)

thnx for any help
peter





--
mag. peter pilsl
goldfisch.at
IT- & dataconsulting
tel: +43 650 3574035
tel: +43 1 8900602
fax: +43 1 8900602 15
pilsl@goldfisch.at

В списке pgsql-general по дате отправления:

Предыдущее
От: "Ramakrishna Reddy"
Дата:
Сообщение: Problems copying data to different database
Следующее
От: "surabhi.ahuja"
Дата:
Сообщение: date value not geting inserted properly