创建域错误

时间:2017-02-12 21:07:53

标签: sql database postgresql relational-database

我正在尝试定义一个新域名" rating_int"我可以在表格中使用"评论"。无论何时我尝试执行此查询,它都会返回以下消息:

错误:列" rating_int"不存在

**********错误**********

错误:列" rating_int"不存在

SQL状态:42703

我遵循与postgresql example完全相同的代码格式,我不知道为什么我的代码返回错误。

CREATE DOMAIN rating_int AS INTEGER
CHECK(rating_int > 0 AND rating_int <=10);

CREATE TABLE Review
(
    paper_id INTEGER,
   rv_email VARCHAR(55)     NOT NULL,
   reccomendation TEXT,
   a_comments TEXT,
   c_comments TEXT,
   technical_merit rating_int,
   readability rating_int,
   orginality rating_int,
   relevance rating_int,
   PRIMARY KEY(paper_id, rv_email),
   FOREIGN KEY(paper_id) REFERENCES Paper
   ON DELETE RESTRICT ON UPDATE CASCADE,
   FOREIGN KEY(rv_email) REFERENCES Reviewer
   ON DELETE SET NULL   ON UPDATE CASCADE
   );

1 个答案:

答案 0 :(得分:1)

您使用value,而不是域名。像这样:

CREATE DOMAIN rating_int AS INTEGER
    CONSTRAINT chk_rating_int CHECK (value > 0 AND value <= 10);

您实际上不需要为约束命名 - 您的错误是rating_int而不是value。所以这有效:

CREATE DOMAIN rating_int AS INTEGER
    CHECK (value > 0 AND value <= 10);

但是,我认为给出约束名称是一个好主意。

此外,如果您想节省空间,可能需要将类型设为smallintdecimal(2)