如何在创建的表中强制执行约束?

时间:2017-05-19 02:48:11

标签: oracle

我试图找出以下语句的正确约束语法:

  

“对于给定的站点,必须同时指定Catchment Area和Catchment Height,或者都没有指定它们(即它们都是NULL,或者它们都不是NULL) - 请注意这是一个TABLE级别约束“。

Catchment Area和Catchment Height是我在表中的列。

到目前为止我一直在做的是

  1. 右键单击左侧窗格中的表名以打开“编辑表”
  2. 点击“修改”
  3. 点击左侧窗格中的“约束”
  4. 点击Green Plus> “新检查约束”
  5. 这会在“编辑表”框中打开一个名为“检查条件”的新文本部分,我必须在Oracle SQL Developer可以理解的语法中指定约束。

    到目前为止,这种方法已经实施了我已经实施的其他约束,但出于某种原因,我无法弄清楚如何说出这个特定的约束。

    任何帮助将不胜感激,谢谢。

    这一切都发生在Oracle SQL Developer中。

1 个答案:

答案 0 :(得分:1)

这是实际的DDL

alter table your_table
    add constraint your_table_catchment_ck check 
    ( ( Catchment_Area is not null and Catchment_Height is not null)
      or ( Catchment_Area is null and Catchment_Height is null)
   )

对于IDE,您只需要使用条件(check后面的位。注意所有括号!