Index
DB2 Load Utility 主鍵與唯一索引
簡而言之,主鍵是否兼作唯一索引?
一些背景:
我正在嘗試使用在 IXF 文件類型中載入的 DB2 Load 實用程序將一堆數據載入到兩個表中。數據按表分開,每個表按月分開,所以我需要重複執行載入命令。數據的實際載入似乎不需要很長時間,但是,該實用程序會在每次載入後重新建構索引。隨著表的增長,這逐漸使我的執行時間越來越長。在載入實用程序的 DB2 文件中,它顯示了延遲選項的索引模式,聽起來好像跳過了該步驟(建議您在最後一次載入時進行重建)。當我設置此選項時,兩個表的執行都出現以下錯誤…
SQL3214N 裝入操作失敗,因為表與 DEFERRED 索引方式不兼容。原因程式碼:“1”。
現在我已經瀏覽並查看了這張
syscat.indexes
桌子,兩張桌子都沒有“唯一索引”。兩者都有主鍵,只有一個具有唯一鍵,這提示了我上面的問題。
您如何確定表沒有唯一索引?主鍵和唯一約束通過唯一索引實現(除非是資訊約束,即未強制執行)。嘗試:
SELECT INDSCHEMA, INDNAME FROM SYSCAT.INDEXES WHERE UNIQUERULE IN ('U','P') AND TABSCHEMA = '...' AND TABNAME = '...'
文件說:
重要的是要了解主鍵或唯一鍵約束與唯一索引之間沒有顯著差異。為了實現主鍵和唯一鍵約束的概念,數據庫管理器使用唯一索引和 NOT NULL 約束的組合