disable/enable validate/novalidate 的區別(轉)
disable/enable validate/novalidate 的區別
轉自 http://blog.sina.com.cn/s/blog_5a3b1e820100a1ek.html
啟用約束:
enable( validate):啟用約束,創建索引,對已有及新加入的數據執行約束.
enable novalidate:啟用約束,創建索引,僅對新加入的數據強制執行約束,而不管表中的現有數據.
禁用約束:
disable( novalidate):關閉約束,刪除索引,可以對約束列的數據進行修改等操作.
disable validate:關閉約束,刪除索引,不能對表進行 插入/更新/刪除等操作.
環境:oracle 9i 9.0.1.0 for win,以上結論均測試通過.
例:disable validate約束后,執行update...操作提示:
ORA-25128: 不能對帶有禁用和驗證約束條件 (SYS.PK_EMP_01) 的表進行插入/更新/刪除
ORACLE的表的分類:
1、REGULAR TABLE:普通表,ORACLE推薦的表,使用很方便,人為控制少。
2、PARTITIONED TABLE:分區表,人為控制記錄的分布,將表的存儲空間分為若干獨立的分區,記錄按一定的規則存儲在分區里。適用于大型的表。