在注册表中添加一列

请参考以下架构,并将一个字段–带有日期类型的DOC添加到“注册”表中。

确保DOC大于DOJ。 (注意:DOC-完成日期)。

这是架构。

在注册表中添加一列

这是我的代码

alter table registration add doc date
  add constraint registration_chk_date check(doc>doj);

当我编译并运行上面的代码时,结果表被更改了,但是从上面的代码中我的测试用例根本没有通过。有人可以告诉我我出了什么问题吗?

下面是评估上述代码后得到的测试用例。

测试用例1-列名和数据类型检查

检查列的数据类型

Table
COLUMN_NAME
------------------------------
COURSEID
DOC
DOJ

测试用例2-列约束检查

检查列的约束

COLUMN_NAME
------------------------------
COURSEID
DOC
DOJ
STUDID

测试案例3-列约束名称检查 检查列的约束名称

COLUMN_NAME
------------------------------
COURSEID
DOC
DOJ
STUDID
iCMS 回答:在注册表中添加一列

我不确定您使用的不是PK和FK约束,而是观察结果的最后一行。 DOJ中允许使用空值,这可能会导致测试用例失败。

CREATE TABLE registration(
    courseid   NUMBER(4),studid     NUMBER(4),doj        DATE
)
/

    INSERT INTO registration VALUES(
        1001,100,sysdate
    );
/

ALTER TABLE registration ADD doc DATE;

ALTER TABLE registration ADD CONSTRAINT registration_chk_date CHECK(doc > doj);

INSERT INTO registration VALUES(
    1001,sysdate + 1,sysdate + 1
);

INSERT INTO registration VALUES(
    1001,sysdate,sysdate + 1
);

INSERT INTO registration(
    courseid,studid,doc
)VALUES(
    1002,101,sysdate
);

SELECT *
FROM registration;

enter image description here

本文链接:https://www.f2er.com/2212004.html

大家都在问