トリガを作成しました。行を更新すると、前にトリガーが動作しません。後で、2回目の行を更新すると、トリガーが機能しています。なぜ前に動かないの?それはないどのようにそれがどのように動作するかと -PostgreSQLはトリガによって最後に更新された行を更新しません
CREATE TRIGGER trg_update_em_z_module_mod_codes
before UPDATE
ON emlakmuayene.em_z_module
FOR EACH ROW
EXECUTE PROCEDURE emlakmuayene.update_em_z_module_mod_codes();
CREATE OR REPLACE FUNCTION emlakmuayene.update_em_z_module_mod_codes()
RETURNS trigger AS
$BODY$
BEGIN
if (TG_OP = 'UPDATE') then
if new.mod_codes_ids is not null then
new.mod_codes=
(
SELECT translate(array_Agg(pages)::Text,'{}','') as mod_codes
FROM emlakmuayene.em_z_module t1
join emlakmuayene.em_z_order_pages_view t2
on t2.id_seq_x = any (('{'||t1.mod_codes_ids||'}')::bigint[]) where t1.id_Seq_X=new.id_seq_x group by t1.id_Seq_X);
end if ;
end if;
RETURN new;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
は、いくつかのコードを表示してください
を働いています –