【问题标题】:MODIFY or ADD to add NOT NULL constraint to a column? Oracle sql修改或添加以将 NOT NULL 约束添加到列?甲骨文
【发布时间】: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 号没有现有约束,它会被修改吗?

【问题讨论】:

    标签: oracle constraints


    【解决方案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 会跟踪以防您删除了一个,而另一个仍然有效。

      【讨论】:

        猜你喜欢
        • 2017-09-07
        • 2014-11-15
        • 2017-07-06
        • 1970-01-01
        • 1970-01-01
        • 2023-02-03
        • 2021-04-21
        • 2020-12-13
        • 1970-01-01
        相关资源
        最近更新 更多