Може да работи така:
CREATE OR REPLACE FUNCTION public.f_brand_lookup()
RETURNS trigger AS
$func$
BEGIN
SELECT INTO NEW.brand
bt.brand
FROM brand_translation bt
WHERE bt.source = NEW.source;
RETURN NEW;
END
$func$
LANGUAGE plpgsql;
CREATE TRIGGER brand_insert_before_lookup
BEFORE INSERT ON subscriber
FOR EACH ROW EXECUTE PROCEDURE public.f_brand_lookup();
Има твърде много грешни неща във вашия пример.
Трябва да започнете с изучаване на основите. Както винаги, предлагам много хубавото ръководство.
Започнете тук и тук
.