Constraint

jackson198574發表於2013-12-13
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模式的約束的資料進行信任,即需要檢驗以前的資料
      (這個沒用過,實在搞不準確切含義,還是把文件的內容直接放上來)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20802110/viewspace-1063216/,如需轉載,請註明出處,否則將追究法律責任。

相關文章