help with rules please
От | peter pilsl |
---|---|
Тема | help with rules please |
Дата | |
Msg-id | 4486B71D.6000102@goldfisch.at обсуждение исходный текст |
Ответы |
Re: help with rules please
Re: help with rules please |
Список | 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 по дате отправления: