function return value inside a trigger function
Hello Good Evening all,
does anybody knows how can I have something like:
select function_that_returns_int(NEW.field1) into NEW.field2;
i.e., getting a function output and assign it to a variable inside the trigger.
in a trigger function?
I'm always getting:
ERROR: SELECT query has no destination for result data
thanks in advance
jtv
On 09/26/12 17:56, joao viegas wrote:
does anybody knows how can I have something like:
select function_that_returns_int(NEW.field1) into NEW.field2;
I think you want:
select into NEW.field2 function_that_returns_int(NEW.field1);
or even:
NEW.field2 := function_that_returns_int(NEW.field1);
Bosco.
joao viegas <jtamviegas@yahoo.co.uk> writes:
does anybody knows how can I have something like:
select function_that_returns_int(NEW.field1) into NEW.field2;
Works for me ...
create table fooey (q1 int, q2 int);
create function myt() returns trigger language plpgsql as $$
begin
select abs(new.q1) into new.q2;
return new;
end$$;
create trigger mytrig before insert on fooey for each row
execute procedure myt();
insert into fooey values(-42, 77);
select * from fooey;
q1 | q2
-----+----
-42 | 42
(1 row)
Perhaps you should show a full example of what you're doing.
regards, tom lane
sorry for the late update
thank you all,
I found the cause, that specific sentence was correct, it was in another
sentence of the same function, I think it was late at night and I was tired.
thank you anyway
best regards
jtv
On 27 September 2012 02:26, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Show quoted text
joao viegas <jtamviegas@yahoo.co.uk> writes:
does anybody knows how can I have something like:
select function_that_returns_int(NEW.field1) into NEW.field2;Works for me ...
create table fooey (q1 int, q2 int);
create function myt() returns trigger language plpgsql as $$
begin
select abs(new.q1) into new.q2;
return new;
end$$;create trigger mytrig before insert on fooey for each row
execute procedure myt();insert into fooey values(-42, 77);
select * from fooey;
q1 | q2
-----+----
-42 | 42
(1 row)Perhaps you should show a full example of what you're doing.
regards, tom lane