修改或添加以向列添加非空约束?Oracle sql

修改或添加以向列添加非空约束?Oracle sql,oracle,constraints,Oracle,Constraints,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列添加一个NOTNULL约束。我会使用修改约束还是添加约束?我被告知您必须删除约束并添加新的约束,但如果客户ID号没有现有约束,是否需要修改?只需修改列: alter

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列添加一个NOTNULL约束。我会使用修改约束还是添加约束?我被告知您必须删除约束并添加新的约束,但如果客户ID号没有现有约束,是否需要修改?

只需修改列:

alter table orders modify customer_id not null;
alter table orders modify customer_id not null;
或者,您可以在以下形式中添加[overkill]约束:

alter table orders add constraint nn1 check (customer_id is not null);
只需使用第一种形式

作为一个旁注,一些数据库(如Oracle)认为这两个约束是不同的并且有点不同:前者是列约束,后者是表约束。Oracle会跟踪您删除其中一个,而另一个仍然有效。

只需修改列:

alter table orders modify customer_id not null;
或者,您可以在以下形式中添加[overkill]约束:

alter table orders add constraint nn1 check (customer_id is not null);
只需使用第一种形式

作为一个旁注,一些数据库(如Oracle)认为这两个约束是不同的并且有点不同:前者是列约束,后者是表约束。甲骨文随时跟踪,以防您删除其中一个,而另一个仍然有效