Here's what I want to do:
I have a master table that has 2 columns: idcol1 and idcol2, where idcol2 is equivalent to idcol1
Table: color_eq
idcol1 idcol2
1 1
2 2
2 3
Table: warehouse
idcol qty
1 10
2 20
if I execute "update warehouse set qty=10 where idcolor=3", I want the trigger to search table color_eq for idcol2=3, picks its corresponding idcol1 and update the table warehouse with idcol1.
The problem I'm facing is that the trigger before update won't execute if there isn't a row with idcol=3 in the table warehouse.
Here's my code:
CREATE OR REPLACE FUNCTION update_warehouse() returns "trigger" AS '
declare idcolmaestro float:=0;
BEGIN
select into a idcolor1 from color_eq where idcolor2=old.idcolor;
if a is null then
a=old.idcolor;
end if;
new.idcolor=a;
return new;
END;
' LANGUAGE 'plpgsql' VOLATILE;
CREATE TRIGGER update_warehouse_trigger
before UPDATE
ON warehouse
FOR EACH ROW
EXECUTE PROCEDURE update_warehouse();
Any help would be greatly appreciated!declare idcolmaestro float:=0;
BEGIN
select into a idcolor1 from color_eq where idcolor2=old.idcolor;
if a is null then
a=old.idcolor;
end if;
new.idcolor=a;
return new;
END;
' LANGUAGE 'plpgsql' VOLATILE;
CREATE TRIGGER update_warehouse_trigger
before UPDATE
ON warehouse
FOR EACH ROW
EXECUTE PROCEDURE update_warehouse();