前言:約束分為兩種,一種是列約束,一種是表約束。列約束是指定義在乙個列上的約束,表約束指定義在兩個或多個列上的約束。
10.primary key 約束:
alter table mytable add constraints name primary key (field[,field...]);
11.unique約束:
alter table mytable add constraints name unique (field);
12.check約束:
alter table mytable add constraints name check (field 表示式);
其中:check 約束相當於validate,也分為列約束,表約束,並且對乙個列可以定義多個check約束。
13.foreign key 約束:
alter table mytable add constraints name foreign key field references mytable2 (field) on delete cascade/set null/ no action;
其中 on delete分為三種模式:
cascade:級聯刪除 ,預設;
set null :關聯子表設定為null ,
no action:無操作,這種操作會發生錯誤,所以會被禁止。
14.刪除、禁止、啟用約束:
刪除:alter table mytable drop constraints name;
禁止:alter table mytable disable constraints name;
alter table mytable moidfy constraints name disable;
啟用:alter table mytable enable constraints name;
alter table mytable modify constraints name enable;
15.使用約束的四種狀態:
enable validate:啟用約束狀態,對已存在的記錄進行約束檢查,並對以後新增的資料進行檢查;
enable novalidate:啟用非驗證約束,不對已存在 的記錄進行約束檢查,只能以後新增的資料進行檢查;
disable validate:禁止驗證狀態,對已存在的記錄進行約束檢查,oracle不允許新增資料;
disable novalidate:禁用非驗證狀態,不對已廈的記錄進行檢查,也不對以後新增的資料進行檢查。
alter table mytable modify constraints name enable validate/*/*/*.
16.延遲約束:
狀態:deferrable initially immediate:在新增或修改語句時立即檢查約束 ;
deferrable initially deferred:在新增或修改語句時不立即檢查,只在提交事務時檢查約束 。
延遲約束性,只能在第一次alter table add constraints時新增,不能建立約束之後又修改或新增約束的延遲性。但是可以在建立延遲性後修改狀態。例如 :
建立 :
alter table mytable add constraints name primary key/unique/*/* field_name deferrable initially immediate;
修改:alter table mytable modify constraints name initially deferred;
或者:set constraint name deferred;
17.檢視約束:
檢視表中的約束:
select constraint_name,constraint_type,deferred,deferrable,status from user_constraints ; 可以新增where條件,比如:where table_name='mytable';
檢視列中的約束:
column column_name format a10;
select constraint_name, column_name from user_cons_columns ;同樣可以新增where條件。
學習oracle筆記 表與字段(四)
學習oracle筆記 表與字段 四 前言 約束分為兩種,一種是列約束,一種是表約束。列約束是指定義在乙個列上的約束,表約束指定義在兩個或多個列上的約束。www.2cto.com 10.primary key 約束 alter table mytable add constraints name pr...
學習oracle筆記 表與字段(二)
學習oracle筆記 表與字段 二 2.刪除表中的字段 www.2cto.com 刪除乙個字段 alter table mtable drop column field cascade constrains or alter table mytable set unused field cascad...
oracle學習筆記四
資料庫管理 sys使用者 對應乙個方案 基表和動態檢視 dba 資料庫管理員 sysdba 系統管理員 sysoper 系統操作員 只能以sysdba或sysoper登入 system 對應乙個方案 次級使用者資料 dba sysdba show parameter 資料庫表的邏輯備份與恢復 匯出 ...