ORACLE:限制文章可能存在的问题数量的约束

时间:2012-01-23 14:36:16

标签: sql oracle constraints assertion

在修订文件中坚持这个问题。我把其他关系留下了,因为它们与这个问题无关。

考虑以下关系: 文章(arID,标题,期刊,问题,年份,首页,终点)

我如何制定约束条件,以确保在一个特定问题中不得发布超过5篇文章?

我会做类似的事情吗?

CREATE ASSERTION ArticlesInIssue
CHECK(
(SELECT COUNT(Issue) FROM Article) <= 5);

我认为这不会完全奏效,因为它不会指望具体问题,对吧?那么我需要一个where子句,还是我在这里完全错误的方向? 谢谢, 沫。

2 个答案:

答案 0 :(得分:1)

写一个插入时触发的 trigger 。您可以在触发器中编写SQL以查询要插入的表并执行该检查。您的代码需要显式回滚插入。

我希望你在问题栏上有一个索引!

答案 1 :(得分:0)

一种可能的解决方案是添加articleNo NUMBER(1) NOT NULL列和约束:

UNIQUE (issue, articleNo) 

CHECK (articleNo BETWEEN 1 AND 5)