postgresql 添加触发器
添加触发器
-- 创建触发器函数 CREATE FUNCTION update_kpi_for_path_depth_trigger_fun() returns trigger as $$ begin DELETE from kpi_path; WITH RECURSIVE T (kpi_id, NAME, PARENT_ID, PATH, DEPTH,kpi_sql) AS ( SELECT kpi_id, NAME, PARENT_ID, ARRAY[kpi_id] AS PATH, 1 AS DEPTH,kpi_sql FROM kpi WHERE PARENT_ID = 0 UNION ALL SELECT D.kpi_id, D.NAME, D.PARENT_ID, T.PATH || D.kpi_id, T.DEPTH + 1 AS DEPTH,D.kpi_sql FROM kpi D JOIN T ON D.PARENT_ID = T.kpi_id ) INSERT INTO kpi_path(kpi_id,name,parent_id,path,depth,kpi_sql) SELECT kpi_id, NAME, PARENT_ID, PATH, DEPTH,kpi_sql FROM T ORDER BY PATH; UPDATE kpi set path =p.path,depth=p.depth from kpi_path p WHERE p.kpi_id=kpi.kpi_id; RETURN NULL; -- 返回值是必须的 end; $$ language plpgsql; -- 基于表和列创建出发器 CREATE TRIGGER update_kpi_for_path_depth_fun_trigger after insert or UPDATE of parent_id on kpi for each row execute procedure update_kpi_for_path_depth_trigger_fun();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2018-09-06 获取当前Linux的外网地址 curl ifconfig.me
2018-09-06 redis学习总结