# 合成鍵

當兩個或更多內部表格有兩個或更多的共同欄位，這就意味著有複合索引鍵關係。QlikView 透過自動建立合成鍵來處理此項目。這些索引鍵為代表複合索引鍵所有發生組合的匿名欄位。

如果您在載入資料時收到有關合成鍵的警告，則建議您在表格檢視器中檢閱資料結構。您應該詢問自己資料模型是否正確。有時，由於指令碼中存在錯誤而使用合成鍵。

多個合成鍵通常是不正確資料模型的徵兆，但並非必然。然而，不正確資料模型的確切訊號是您是否有基於其他合成鍵的合成鍵。

警告備註當合成鍵的數目增加時，根據資料數量、表格結構和其他因素，QlikView 不一定能夠妥善地處理它們，最終可能會使用大量的時間和/或資金。在此情況下，您需要透過移除所有合成鍵，重做您的指令碼。

![Two tables, IntervalMatchLength and LengthRange, have the Start and End fields in common. They are connected by the $Syn 1 field, which leads to the $Syn 1 Table, which contains only $Syn 1 and Start and End.](https://help.qlik.com/zh-TW/qlikview/September2026/Subsystems/Client/Content/Resources/Images/ex_gen_SyntheticKeys_dmv.png)

## 處理合成鍵

如果您需要避免合成鍵，則有許多方法在載入指令碼中解決此問題。

* 檢查是否只有邏輯上連結的兩個表格的欄位用作索引鍵。

  * 「註解」、「備註」和「描述」等欄位可能存在於數個表格中，但不相關，因此不得用作索引鍵。
  * 「日期」、「公司」和「名稱」等欄位可能存在於數個表格中，且具有相同值，但是仍具有不同角色 (訂單日期/出貨日期、客戶公司/供應商公司)。在此類情況下，它們不得用作索引鍵。

* 確保不會使用冗餘欄位，僅連接必要欄位。例如，如果日期用作索引鍵，請確定不要從一個以上的內部表格載入相同日期的 year、month 或 day\_of\_month。

* 必要的話，形成自有的非複合索引鍵，通常是在 AutoNumber 指令碼函數內使用字串串連。