Re: rules
От | Jan Wieck |
---|---|
Тема | Re: rules |
Дата | |
Msg-id | 200104262124.QAA04341@jupiter.jw.home обсуждение исходный текст |
Ответ на | rules (Martín Marqués <martin@bugs.unl.edu.ar>) |
Список | pgsql-sql |
Martín Marqués wrote: > Is it posible to make a rule execute more then one query? > > Something like: > > CREATE RULE rule_name AS ON INSERT TO table1 > DO INSTEAD > INSERT INTO table2 VALUES > (new.value1,new.value2) > INSERT INTO table3 VALUES > (x,y) Yes: CREATE RULE rule_name AS ON INSERT TO table1 DO INSTEAD ( INSERT INTO table2 VALUES (new.value1,new.value2); INSERT INTO table3 VALUES (x,y); ); You just omitted the parens and semicoli :-) > > If not, is there a way to do this? Triggers maybe? Triggers too (even if yes above and effectively you haven't asked for): CREATE FUNCTION whatever () RETURNS opaque AS ' BEGIN INSERT INTO table2 VALUES (new.value1,new.value2); INSERT INTO table3 VALUES (...); RETURN NULL; -- returning NULL froma BEFORE trigger -- suppresses the triggering INSERT to -- happen. END;' LANGUAGE 'plpgsql'; CREATE TRIGGER table1_ins BEFORE INSERT ON table1 FOR EACH ROW EXECUTE whatever(); Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== JanWieck@Yahoo.com # _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
В списке pgsql-sql по дате отправления: