Constraint

扫码查看
    1、Constraints的目的:

      设立Constraint就是为了让数据满足某些规则。


    2、Constraint的类型:

      not null    (不能为空)
      unique      (值必须唯一)
      primary key (not null + unique)
      goreign key (该表值必须在外键表中存在)
      check       (自己加的条件)
      ref         (不熟)


      注:Constraints不但可以建立在Table上,也可以建立在View上。


    3、Constraint的状态:

      ① Deferrable
      该参数用于指定是否可以是同set语句来进行临时控制constraint,时约束在commit时才生效
      DEFERRABLE:可以使用set constraint字句
      NOT DEFERRABLE:不可以使用set constraint字句(默认)

      ② Initially
      该参数用于建立默认的DEFERRABLE类型约束
      INITIALLY一般都要和IMMEDIATE、DEFERRED一起使用
      INITIALLY IMMEDIATE:在执行SQL时违反约束即报错(默认)
      INITIALLY DEFERRED:在提交时才报错

      ③ Validate | NoValidate
      该参数一般与Enabled和Disabled属性搭配使用

      ④ Enable
      该参数确认约束应用于数据
      ENABLE VALIDATE:将验证已经存在的和之后的操作是否符合约束(默认)
      ENABLE NOVALIDATE:不验证已经存在的数据,但对之后进行的操作有效

      ⑤ Disable
      该参数使约束失效
      DISABLE VALIDATE:约束失效标注,可用于暂时导入大量数据时,不进行索引更新
      DISABLE NOVALIDATE:约束失效,并不保证约束是否正确,即不保证已有数据满足约束(默认)

      ⑥ Rely
      Rely和Norely只能用在 ALTER TABLE MODIFY constraint 语句中
      Rely:告诉Oracle,不必对NOVALIDATE模式的约束的数据进行信任,即需要检验以前的数据
      (这个没用过,实在搞不准确切含义,还是把文档的内容直接放上来)
11-09 14:29
查看更多