Re: SQL Rule
От | Alban Hertroys |
---|---|
Тема | Re: SQL Rule |
Дата | |
Msg-id | 444F41DE.7080402@magproductions.nl обсуждение исходный текст |
Ответ на | SQL Rule ("Bert" <clemens.bertschler@gmail.com>) |
Список | pgsql-general |
Bert wrote: > Hi list > > I have a table construction like the one seen below, when i am updating > or inserting i get a recurion, logical. But how to manage it that the > rule is just doing it one time. Or is it possible to do the sum of a > and b in an other way? > > CREATE TABLE test > ( > a int2, > b int2, > c int2, > id int2 NOT NULL, > CONSTRAINT id_test PRIMARY KEY (id) > ) > WITHOUT OIDS; You do know you can write this like this?: CREATE TABLE test ( a int2, b int2, c int2, id int2 NOT NULL PRIMARY KEY ) WITHOUT OIDS; > CREATE OR REPLACE RULE sum_op AS > ON INSERT TO test DO UPDATE test SET c = new.a + new.b > WHERE test.id = new.id; How do you expect to update a record that doesn't exist yet? I suppose what you meant is something like this (didn't check the syntax, but the INSTEAD part is important): CREATE OR REPLACE RULE sum_op AS ON INSERT TO TEST DO INSTEAD INSERT (a, b, c, id) VALUES (new.a, new.b, new.a + new.b, new.id); But as others suggested, a view is probably the better way to go. Regards, -- Alban Hertroys alban@magproductions.nl magproductions b.v. T: ++31(0)534346874 F: ++31(0)534346876 M: I: www.magproductions.nl A: Postbus 416 7500 AK Enschede // Integrate Your World //
В списке pgsql-general по дате отправления: