Re: Triggers and SQL functions
От | Philippe Rochat (RSR: 318 17 93) |
---|---|
Тема | Re: Triggers and SQL functions |
Дата | |
Msg-id | 3627CAE2.BB7E1F9D@lbdsun.epfl.ch обсуждение исходный текст |
Ответ на | Triggers and SQL functions (Pierre Padovani <pierre@desertmoon.com>) |
Список | pgsql-sql |
pierre@desertmoon.com wrote: > > > > > I have exactly the same problem as you mentioned in a mail > > sent to postgres mailing lists about creating trigger using > > sql function ... > > > > Did you get the solution to you problem ? > > > > Ph.R. > > > > > > I actually found the solution in the docs. The solution is to understand > the difference between triggers and rules. Triggers are used primarily > to call C/C++ library functions that you can create and add onto the > postgresql system. > > Rules on the other-hand act just like 'triggers' but only call/usr > sql to perform their functions. > > So the solution: Use rules to create trigger-like actions that run > stored sql procedures. There is a man page on 'create rule' that you > can use to get more info. > > -=pierre I found out the following trick ... but I m not sure it s clean ! -- Makes all user at least belonging to Void ... just in case CREATE FUNCTION adduservoid () returns boolean as 'insert into user_realm select id as uid,1 as rlid,false as adminuser from user where not exists ( select uid from user_realm where user.id=user_realm.uid ); select true as ignore_this;' language 'sql'; CREATE RULE autoadduservoid as on insert to user do select adduservoid(); Ph.R. -- _____________________________________________________________________ Philippe Rochat, EPFL DI-LBD Database Laboratory CH-1015 LAUSANNE Swiss Federal Institute of Technology (EPFL) tel:++41 21 693 52 53 Beep-EPFL: 181 4644 fax:++41 21 693 51 95 Private: Grammont, 9 1007 LAUSANNE tel:++41 21 617 03 05 mailto:Philippe.Rochat@epfl.ch, http://lbdwww.epfl.ch/~prochat
В списке pgsql-sql по дате отправления: