【发布时间】:2011-05-15 14:02:00
【问题描述】:
我正在尝试通过检查值的总和是否小于 100 来向表添加约束。
这是我的架构:
CREATE TABLE Works (
eid INTEGER,
did INTEGER,
pct_time INTEGER,
PRIMARY KEY (eid,did),
FOREIGN KEY (eid) REFERENCES Employee(eid),
FOREIGN KEY (did) REFERENCES Dept(did)
);
我需要检查每个 eid 的 pct_time 总和是否
例如
eid --- did ---- pct_time
0 ----- a ------- 50
0 ----- d ------- 40
0 ----- c ------- 20
1 ----- a ------- 90
1 ----- b ------- 10
2 ----- d ------- 40
2 ----- a ------- 20
在这里,当我将 eid 0 的第三个条目添加为总和 > 100 时,它应该出错了。
对于 eid 1 和 2 来说 pct_time 会很好
如何做到这一点?
到目前为止,我所做的只是
ALTER TABLE Works
ADD CONSTRAINT c1
CHECK SUM(pct_time) < 100
【问题讨论】:
标签: sql database postgresql constraints