Re: [HACKERS] Affected rows count by rule as condtition

2009-04-13 Thread mito
This will deny insert of value that allready exists. Which is ok. But the second scenerio in which unique constraint refuse operation is, when u try to update more rows to same value in column with unique constraint. So i need to use count of affected rows, to deny operation if there are more

Re: [HACKERS] Affected rows count by rule as condtition

2009-04-13 Thread Robert Haas
On Mon, Apr 13, 2009 at 12:59 PM, mito wrote: > I am using rules as layer to save every version of row in shadow table, so i > cant use unique constraint on column, because of many versions may have same > value. Use a partial index. ...Robert -- Sent via pgsql-hackers mailing list (pgsql-hack

Re: [HACKERS] Affected rows count by rule as condtition

2009-04-13 Thread mito
I am using rules as layer to save every version of row in shadow table, so i cant use unique constraint on column, because of many versions may have same value. mito Jaime Casanova wrote: On Mon, Apr 13, 2009 at 11:12 AM, mito wrote: It need to simulate unique constraint on field s_users.ne

Re: [HACKERS] Affected rows count by rule as condtition

2009-04-13 Thread Robert Haas
On Mon, Apr 13, 2009 at 12:12 PM, mito wrote: > Hi, > is there any way how to count affected rows by on update rule and use it as > part of condtions. > > Example: > > > CREATE OR REPLACE RULE "_UPDATE" AS ON UPDATE TO "users" DO INSTEAD ( >   UPDATE "s_users" SET >    id = new.id, >        login

Re: [HACKERS] Affected rows count by rule as condtition

2009-04-13 Thread Jaime Casanova
On Mon, Apr 13, 2009 at 11:12 AM, mito wrote: > > It need to simulate unique constraint on field s_users.new_id, so it should > deny to update multiple rows with same value. > > Any suggestions are welcome. > why not simply create a UNIQUE constraint? -- Atentamente, Jaime Casanova Soporte y c

[HACKERS] Affected rows count by rule as condtition

2009-04-13 Thread mito
Hi, is there any way how to count affected rows by on update rule and use it as part of condtions. Example: CREATE OR REPLACE RULE "_UPDATE" AS ON UPDATE TO "users" DO INSTEAD ( UPDATE "s_users" SET id = new.id, login = new.login, WHERE id IN (SELECT id FROM "s_users" ) AND