Postgres列链接

时间:2013-03-04 15:59:12

标签: sql postgresql triggers constraints

上下文:PostgreSQL数据库,其中包含列steps,列subtypetype(整数)

需要:如果新记录插入上的列subtype值不等于'4',则将列type设置为NULL。

这样做的好方法?约束?触发?

由于

1 个答案:

答案 0 :(得分:1)

首先要做的是添加一个约束:

CHECK (type = 4 OR subtype IS NULL) -- if type is 4, sub type may or may not be null
                                    -- if type is not 4, sub type must be null

然后,如果你需要,你可以写一个简单的触发器来设置它,但一般来说,你最好在必要时提出应用程序错误而不是使用触发器,因为应用程序被通知它将获得的不是它保存的是通常是一件好事。