2015-08-19 62 views
0

我遇到了我無法理解的情況。 我已經爲DB創建了補丁,它會刪除約束(私鑰),然後刪除綁定到約束的索引。它在測試環境中完美無瑕地工作了幾次。但是當我們最終運行它時,它在第一個索引上崩潰了。測試數據庫重新創建測試生產幾次(但我不知道它是如何完成的),並沒有任何問題。在我們測試的時候,怎麼可能沒有發生錯誤?Oracle如何管理綁定到它們的約束和索引

+0

您運行腳本(我們看不到)執行一定的一系列步驟(你已經模糊地描述過了),並且在數據庫(我們無法訪問)上出現了一些錯誤(我們也看不到),並且您希望有人告訴您爲什麼? –

回答

0

根據約束和索引的創建方式,刪除約束條件也可能會丟棄支持索引,因此腳本應該檢查該約束條件和索引。

創建非唯一索引然後添加使用這些索引的主要和唯一約束更加穩健,這樣您就可以放棄約束而不會失去索引就緒的好處。

基礎上取消約束時的行爲的差異現有的或系統生成的索引記錄在這裏:http://docs.oracle.com/database/121/SQLRF/clauses002.htm#CJAGEBIG