2007/8/11, Tom Lane <[EMAIL PROTECTED]>: > "Pavel Stehule" <[EMAIL PROTECTED]> writes: > > NEW is only plpgsql variable. It isn't visible on SQL level. > > Correct, but: > > > You cannot use new.*, you can: > > execute 'INSERT ...' || 'VALUES(' || new.a || ',' || new.b .... > > You're both overthinking the problem. In recent releases (at least > since 8.2) you can do it without any EXECUTE. Like this: > > regression=# create table mytab (f1 int, f2 text); > CREATE TABLE > regression=# create table logt (f1 int, f2 text, ts timestamptz); > CREATE TABLE > regression=# create function myt() returns trigger as $$ > regression$# begin > regression$# insert into logt values(new.*, now()); > regression$# return new; > regression$# end$$ language plpgsql; > CREATE FUNCTION >
I know it Tom. But original question contains EXECUTE 'INSERT INTO ' || quote_ident(SOMEDYNAMICNTABLENAME) || ' SELECT new.*'; and then he needs EXECUTE (propably). but new.* in insert is nice feature. Regards Pavel Stehule ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq