0

改訂論文でこの質問に固執しました。他の関係は質問に関係ないので省略しました。

次の関係を考えてみましょう: Article(arID, title, journal, issue, year, startpage, endpage)

1 つの特定の号で 5 つ以上の記事が公開されないようにする制約を作成するにはどうすればよいですか?

私は次のようなことをしますか:

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

特定の問題にはカウントされないため、これは完全には機能しないと思いますよね?では、where句が必要ですか、それともここで完全に間違った方向に進んでいますか? ありがとう、モー。

4

2 に答える 2

1

挿入時に起動するトリガーを記述します。トリガーにSQLを記述して、挿入しようとしているテーブルをクエリし、そのチェックを行うことができます。コードでは、挿入を明示的にロールバックする必要があります。

問題のコラムに索引があることを願っています!

于 2012-01-24T02:36:59.407 に答える
0

articleNo NUMBER(1) NOT NULL考えられる解決策の 1 つは、列と制約を追加することです。

UNIQUE (issue, articleNo) 

CHECK (articleNo BETWEEN 1 AND 5)
于 2012-02-12T01:31:53.480 に答える