程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 摘要Oracle Check約束

摘要Oracle Check約束

編輯:Oracle數據庫基礎

向大家介紹Oracle,可能好多人還不了解Oracle Check約束,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
◆在Oracle Check約束的表達式中必須引用到表中的一個或多個字段,並且表達式的計算結果必須是一個布爾值
◆可以在表級或字段級定義
◆對同一個字段可以定義多個Oracle Check約束,同時也可以定義NOT NULL約束

  1. create table employees  
  2. (sal number(7,2)  
  3. constraint emp_sal_ck1 check (sal > 0)  
  4. )  
  5. alter table employees  
  6. add constraint emp_sal_ck2 check (sal < 20000

刪除約束
◆alter table dept drop unique (dname,loc) --指定約束的定義內容
◆alter table dept drop constraint dept_dname_loc_uk --指定約束名

刪除約束時,默認將同時刪除約束所對應的索引,如果要保留索引,用KEEP INDEX關鍵字如果要刪除的約束正在被其它約束引用,通過ALTER TABLE..DROP語句中指定CASCADE關鍵字能夠同時刪除引用它的約束利用下面的語句在刪除DEPT表中的PRIMARY KEY約束時,同時將刪除其它表中引用這個約束的FOREIGN KEY約束:

alter table dept drop primary key cascade

禁用/激活約束(禁用/激活約束會引起刪除和重建索引的操作)
◆alter table employees disable/enable unique email
◆alter table employees disable/enable constraint emp_ename_pk
◆alter tabel employees modify constraint emp_pk disable/enable
◆alter tabel employees modify constraint emp_ename_phone_uk disable/enable

如果有FOREIGN KEY約束正在引用UNIQUE或PRIMARY KEY約束,則無法禁用這些UNIQUE或PRIMARY KEY約束,這時可以先禁用FOREIGN KEY約束,然後再禁用UNIQUE或PRIMARY KEY約束;或者可以在ALTER TABLE...DISABLE語句中指定CASCADE關鍵字,這樣將在禁用UNIQUE或PRIMARY KEY約束的同時禁用那些引用它們的FOREIGN KEY約束,如:

alter table employees disable primary key cascade

約束數據字典
◆all_constraints/dba_constraints/user_constraints 約束的基本信息,包括約束的名稱,類型,狀態(約束類型:C(Oracle Check約束),P(主碼約束),R(外部碼約束),U(唯一碼約束))
◆all_cons_columns/dba/user 約束對應的字段信息

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved