创建域错误

观星者

我正在尝试定义一个新的域“ rating_int”,可以在表“ Review”中使用。每当我尝试执行此查询时,它都会返回以下消息:

错误:列“ rating_int”不存在

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

错误:列“ rating_int”不存在

SQL状态:42703

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

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
   );
戈登·利诺夫(Gordon Linoff)

您使用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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章