首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSql -触发器未应用的约束

PostgreSql -触发器未应用的约束
EN

Stack Overflow用户
提问于 2010-01-05 23:15:23
回答 2查看 319关注 0票数 0

我有一张桌子的定义如下:

代码语言:javascript
复制
CREATE TABLE A (
   begin date,
   end date,
   CONSTRAINT ordered_dates CHECK ( begin <= end)
)

..and 2触发器关联:

update

  • trigger2之前的
  • trigger1在更新

之后

在trigger1中,通过计算间隔(=end)在第二个表B中插入。

如果不遵守约束ordered_dates,则表B中插入了错误的值。但是,该约束似乎只在更新期间进行检查,而不是在“前”触发器中检查。

,我是否必须在以前的trigger1中再次测试ordered_date &在此之前会在触发器中意外地引发异常吗??,我知道如何这样做,但在某种程度上我有代码重复。

EN

回答 2

Stack Overflow用户

发布于 2010-01-05 23:30:47

您的触发器是在插入之前触发的,因此它是在应用约束之前获取值。

是的,您需要在插入后检查值或应用触发器。

票数 2
EN

Stack Overflow用户

发布于 2010-01-06 14:34:43

这不是问题,因为当CHECK约束触发并失败时,事务将被中止,因此插入表B将(正确)回滚。

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

https://stackoverflow.com/questions/2009882

复制
相关文章

相似问题

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