テーブル「Student」といくつかの属性があります。そのうちの2つはこの特定の問題で重要です。「ジュニア」の分類(グレードレベル)の生徒は、正確に55〜84時間(クレジット)であることを確認する必要があります。
これが私がこれまでにOracleで宣言に関して持っているものです(不要なコードを削除しました):
CREATE TABLE Students (
id INTEGER,
name CHAR(10) NOT NULL,
classification CHAR(10) NOT NULL,
hours INTEGER,
gpa NUMBER(3,2) NOT NULL,
mentor INTEGER,
-- IC4:
-- To be classified as a 'junior', a student must have
-- completed between 55 and 84 hours (inclusive).
CONSTRAINT IC4 CHECK (classification != 'junior' AND (hours < 55 AND hours > 84))),
);
Oracleは次のエラーをスローします。
23行目のエラー: ORA-00922:オプションが欠落しているか無効です
制約を正しくフォーマットしていないことは確かですが、教授は宣言に約3秒を費やし、自分でそれを理解するように指示しました。1属性の制約は知っていますが、2つの属性を同時に組み合わせる方法がわかりません。誰かが私を助けることができますか?
*基本的に、他のコードでは、ネストされたifステートメントのように見えます。
if (classification == "junior") {
if (hours < 55 && hours > 84)
throwSomeError("Foolish!");
}
それをSQLに変換できないようです。このくそったれの間隔が奇妙であるならば、私は私の命を救うためにそれをフォーマットすることができないことをお詫びします。