修改或添加以将 NOT NULL 约束添加到列?甲骨文

Posted

技术标签:

【中文标题】修改或添加以将 NOT NULL 约束添加到列?甲骨文【英文标题】:MODIFY or ADD to add NOT NULL constraint to a column? Oracle sql 【发布时间】:2018-12-26 20:04:56 【问题描述】:

Oracle 数据库中的 ORDERS 表:

ORDERS
ORDER_ID NOT NULL NUMBER(4)
ORDATE_DATE DATE
CUSTOMER_ID NUMBER(3)
ORDER_TOTAL NUMBER(7,2)

ORDERS 表包含数据,并且所有订单都分配了一个客户 ID。我正在尝试向 CUSTOMER_ID 列添加 NOT NULL 约束。我会使用修改约束还是添加约束?我被告知您必须删除约束并添加新的约束,但是如果对客户 ID 号没有现有约束,它会被修改吗?

【问题讨论】:

【参考方案1】:
alter table orders modify customer_id not null;

【讨论】:

【参考方案2】:

MODIFY专栏:

alter table orders modify customer_id not null;

或者,您可以在表单中添加 [overkill] 约束:

alter table orders add constraint nn1 check (customer_id is not null);

只需使用第一种形式。

附带说明,一些数据库(例如 Oracle)认为这两个约束不同并且有些分开:前者是 column 约束,而后者是 table 约束。 Oracle 会跟踪以防您删除了一个,而另一个仍然有效。

【讨论】:

以上是关于修改或添加以将 NOT NULL 约束添加到列?甲骨文的主要内容,如果未能解决你的问题,请参考以下文章

iphone - 撤消或反转 kCATransitionPush 以将图像发送到屏幕外

如何更改 aurioTouch 项目以将录音写入 .caff 或 .wav 文件

如何配置 ServiceStack Json Serializer 以将 bool 值写入 int 或 byte?

使用 awk 从文件或 EV 中获取环境变量以将其用作 EV

uitableviewcell 具有动态高度或减小字体大小以将多行放入一个单元格

如何配置 Fluent NHibernate 以将查询输出到 Trace 或 Debug 而不是 Console?