数据完整性的管理
? ? ?
alter table table_name drop constraint constraint_name;----drop 約束
alter table table_name add constraint constraint_name primary key(column_name1,column_name2);-----創建主鍵
alter table table_name add constraint constraint_name unique(column_name1,column_name2);---創建唯一約束
/*創建外鍵約束*/?
alter table table_name add constraint constraint_name foreign key(column_name1) references table_name(column_name1);
/*不效驗老數據,只約束新的數據[enable/disable:約束/不約束新數據;novalidate/validate:不對/對老數據進行驗證]*/?
alter table table_name add constraint constraint_name check(column_name like 'B%') enable/disable novalidate/validate;
/*修改約束條件,延時驗證,commit時驗證*/?
alter table table_name modify constraint constraint_name initially deferred;
/*修改約束條件,立即驗證*/?
alter table table_name modify constraint constraint_name initially immediate;
alter session set constraints=deferred/immediate;
/*drop一個有外鍵的主鍵表,帶cascade constraints參數級聯刪除*/?
drop table table_name cascade constraints;
/*當truncate外鍵表時,先將外鍵設為無效,再truncate;*/?
truncate table table_name;
/*設約束條件無效*/?
alter table table_name disable constraint constraint_name;
alter table table_name enable novalidate constraint constraint_name;
/*將無效約束的數據行放入exception的表中,此表記錄了違反數據約束的行的行號;在此之前,要先建exceptions表*/?
alter table table_name add constraint constraint_name check(column_name >15) enable validate exceptions into exceptions;
/*運行創建exceptions表的腳本*/?
start $ORACLE_HOME/rdbms/admin/utlexcpt.sql;
/*獲取約束條件信息的表或視圖*/?
select * from user_constraints/dba_constraints/dba_cons_columns;
總結
- 上一篇: 以最短的宕机时间升级到Oracle 10
- 下一篇: GoldenGate学习笔记(11)_常