postgresql - 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;
--> 空日志表
解决方案
推荐阅读
- echarts - How to choose a color of the palette manually?
- java - 当屏幕改变方向时会调用什么?当我改变方向时,我的应用程序正在重新启动
- android - 如何在 Android 应用的 web 视图中使用持久存储
- python - python中允许重复键的BTree实现?
- laravel - 如何在 Laravel 中捕获“试图获取非对象错误的属性”
- java - 缓存 AmazonS3 客户端以供以后使用是否安全?
- c - 修复“未定义的引用”ft.makefile.txt 和 pthreads
- php - 如何计算随机数字序号?
- javascript - 如何限制来自 wordpress 短代码的内容?
- node.js - 猫鼬文档没有正确映射属性