oracle - 在注册表中添加一列
问题描述
请参考以下架构并将字段 - 具有日期类型的 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
解决方案
我不确定您使用的是 PK 和 FK 以外的约束,但请注意结果中的最后一行。DOJ 中允许使用 Null 值,这可能会导致您的测试用例失败。
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,
100,
sysdate + 1,
sysdate + 1
);
INSERT INTO registration VALUES(
1001,
100,
sysdate,
sysdate + 1
);
INSERT INTO registration(
courseid,
studid,
doc
)VALUES(
1002,
101,
sysdate
);
SELECT *
FROM registration;
推荐阅读
- scala - Scala - 可以在反引号标识符上使用匹配提取吗?
- angularjs - AngularJS 注入器无法解析所需的依赖项
- serilog - 有没有办法指定特定的浓缩器只能用于特定的接收器?
- virtualbox - 在 FreeBSD 上安装 Virtualbox
- javascript - 我如何将嵌套对象作为道具传递给反应
- node.js - 如何从 Twilio 录制的通话中获取录制 ID?
- php - 插入 SQL 查询后如何返回 id [SQL]
- javascript - ExtJs 3.4 - 如何提示预加载的 textField 组件的内容
- java - Dropwizard 指标注释在 Spring Boot 1.5 中不起作用
- neo4j - 根据共享相同电话号码的列表节点创建帐户节点之间的关系