请问关于postgreSQL触发器????

9812 2003-03-18 04:58:31
我想做一个,删除主键记录。后删除所有相关外建的记录。

CREATE OR REPLACE FUNCTION siteuser_delete (integer) RETURNS TRIGGER AS '
BEGIN
Delete from link where id = $1;
END;
' LANGUAGE 'plpgsql';

CREATE TRIGGER siteuser_trigger
BEFORE DELETE ON siteuser FOR EACH ROW
EXECUTE PROCEDURE siteuser_delete (NEW.id);

可以吗???


CREATE OR REPLACE FUNCTION siteuser_delete () RETURNS TRIGGER AS '
BEGIN
Delete from link where id = NEW.id;
END;
' LANGUAGE 'plpgsql';

CREATE TRIGGER siteuser_trigger
BEFORE DELETE ON siteuser FOR EACH ROW
EXECUTE PROCEDURE siteuser_delete ();
或可不可以象oracle 那样写
CREATE TRIGGER siteuser_trigger
BEFORE DELETE ON siteuser FOR EACH ROW
BEGIN
Delete from link where id = NEW.id;
END;
...全文
77 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文详细介绍了PostgreSQL触发器和视图的核心概念、使用方法及相关操作。首先讲解了触发器的基本语法、执行时机(BEFORE/AFTER)、行级与语句级触发器的区别,并通过审计日志案例展示了INSERT、UPDATE、DELETE触发器的创建与管理;接着阐述了视图的概念,强调其作为虚表的特性,说明如何通过视图简化复杂查询、提升安全性,并介绍可更新视图的实现机制,即通过INSTEAD OF触发器支持对视图进行增删改操作;进一步引入物化视图,对比其与普通视图在数据存储和性能上的差异,说明全量刷新与并发增量刷新(CONCURRENTLY)的使用方式及限制条件;最后列举了PostgreSQL系统内置的常用系统表和视图,用于监控数据库状态、锁信息、会话活动和统计信息。; 适合人群:具备一定数据库基础知识,从事数据库开发、运维或数据分析工作1-3年的技术人员。; 使用场景及目标:①实现数据变更的自动审计与响应;②构建安全、高效的查询接口以屏蔽底层表结构;③优化复杂查询性能,利用物化视图减少重复计算;④通过系统视图进行数据库性能监控与故障排查; 阅读建议:学习过程中应结合实际环境动手实践触发器和各类视图的创建与维护,特别注意物化视图刷新机制中唯一索引的必要性,并熟练掌握系统视图在日常运维中的应用。

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧