首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何谓黑洞?

何谓黑洞?
EN

Stack Overflow用户
提问于 2011-10-13 08:31:57
回答 1查看 1.3K关注 0票数 1

我在postgreSQL中启动了一个新项目(最近一次),已经使用了MySQL 5.5一段时间。

在过去,我经常使用blackhole表来简化我的应用程序代码。

它允许我在应用程序代码中进行一次插入:

代码语言:javascript
复制
INSERT INTO blackhole1 (val1, val2, val3, val4 ...

CREATE TRIGGER ai_blackhole1_each AFTER INSERT ....
BEGIN
  INSERT INTO table1 (....
  INSERT INTO table2 (....
  INSERT INTO log (.....

并在黑洞表中有一个触发器,将值插入到不同的表中。

我在postgreSQL中使用什么来替换这个功能?

我知道我可以使用存储过程,但这意味着我不能将数据感知控件连接到

黑洞桌子。因此,我会喜欢的棍子尽可能接近MySQL原版。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-13 21:21:47

使用PostgreSQL 9.1,您可以像使用MySQL一样使用创建触发器。请注意,不可能在9.1之前的版本中为视图创建触发器。

您是在MySQL中为您的黑洞表使用存储引擎黑洞,还是仅仅是一个名称?PostgreSQL中没有可插拔的存储引擎,但您可以获得与MySQL中的存储引擎黑洞相同的行为,而不是PostgreSQL视图上的触发器。我不太明白您对于数据感知控件的看法: afaik --在黑洞表(存储引擎)中没有任何数据感知,但另一方面,您当然可以将hibernate实体映射到数据库视图。

使用触发器简化应用程序代码是一个好主意还是坏主意,取决于实际的用例。例如,对于日志记录和审计,我更喜欢触发器而不是应用程序逻辑,因为这种方法为连接到数据库的不同应用程序以及管理员的临时查询/语句提供了单一的解决方案。但根据我的经验,触发器不会消除复杂性,而只是将其转移到数据库层。这通常会使多层应用程序更难扩展和维护。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7751375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档