首页 > 解决方案 > PostgreSQL 12.5 中未执行 AFTER INSERT 触发器(未打印通知,未执行表更新)

问题描述

我创建了一个表transfer_task和一个插入后触发器job_creator_insert,只要在transfer_task表上发生插入,就会触发。然后触发器应发出通知并将一个值插入到名为logtable的辅助表中。所有操作都在 DBeaver 中从同一架构中的同一数据库用户运行。

-- the insert trigger function and trigger
create or replace function job_creator_insert() 
returns trigger 
as $job_creator_insert$
begin
    RAISE NOTICE 'Trigger has been executed';  
    insert into logtable (status) values ('Trigger has been executed.');
    return NEW;
end
$job_creator_insert$ language plpgsql;

create trigger job_creator_insert
after insert on transfer_task for each row 
execute procedure job_creator_insert();

-- Logtable
create table logtable (status character varying(2000));

但是,在传输任务表上执行并提交插入后,日志表仍然是空的,并且控制台中没有显示任何通知:

insert into transfer_task (id,transfer_id,status) values (1,2,2);

接着

select * from logtable;

--> 空日志表

标签: postgresqltriggersinsert

解决方案


推荐阅读