# 限制和考慮事項

您在使用 PostgreSQL 來源時應注意下列限制和考慮事項：

## 所有資料任務的限制和考慮事項

* 資料庫名稱不能包含分號 (;)。

* 不支援資料庫在 Hot Standby 模式時擷取變更。

* 移動 個多重表格有相同名稱，但有不同大小寫（如：`table1`、`TABLE1`和`Table1`）可能會導致不可預測的行為，因此不支援。

* 僅 PostgreSQL 16 支援 PostgreSQL 讀取複本 (在高度可用性環境中)。

* 不支援變更 TRUNCATE 操作程序。

* 不支援延後限制。

* 不支援有 CASE 運算式的獨特索引。

## 僅登陸任務的限制和考慮事項

* 不支援分割的表格。
* 強制容錯移轉是適用於 PostgreSQL 的 Azure 資料庫 – 彈性伺服器的的功能。若在從適用於 PostgreSQL 的 Azure 資料庫 – 彈性伺服器 移動 資料時發生強制容錯移轉，任務將會停止，資料集將需要重新建立。

## 複寫和登陸任務的限制和考慮事項

* 複本識別支援：

  * 如果使用 FULL，則將會為所有表格欄複製之前影像值。只有使用此模式時，才可以重新定義目標索引。

  * 如果使用 DEFAULT，則只有在表格包含主索引鍵時才支援複寫。此外，只會複寫之前影像的主索引鍵欄。

  * 只有當指定的唯一索引是表格的唯一約束 (即該表格沒有主索引鍵或另一個唯一索引) 時，才支援 USING INDEX。在此情況下，這與上面描述的 DEFAULT 值的支援完全相同。

  * 由於 Qlik Talend Data Integration 不驗證 REPLICA IDENTITY 值，請確保定義正確的值。

* 不支援「從時間戳記開始程序變更」運作選項。

* 支援變更 [CREATE | ALTER | DROP] 表格 DDL 程序，除非這些表格保留在內部功能／程序體區塊或在其他巢狀結構體中。

  舉例來說，將不會擷取以下變更：

  `CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void`

  `LANGUAGE plpgsql`

  `AS $$`

  `BEGIN`

  `       create table attu.distributors1(did    serial PRIMARY KEY,name   varchar(40) NOT NULL); `

  `END;`

  `$$;`

* 涉及兩個分割區的 UPDATE 操作 (在分割區之間移動記錄) 將使用 DELETE 和 INSERT 操作複寫至目標表格。如果啟用了 Store Changes 複寫模式，則 UPDATE 將在對應的 Change Table 中顯示為獨立的 INSERT 和 DELETE 操作。

* 使用[平行載入](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/Table-settings-replication.htm)功能時，不支援依照分割區或子分割區進行表格分段。

* 擷取對來源表格的變更時，只有在先進行 DML 操作時，才會擷取 RENAME TABLE (重新命名表格) 操作。

* 不支援 PostGIS 資料類型。

* 強制容錯移轉是適用於 PostgreSQL 的 Azure 資料庫 – 彈性伺服器的的功能。若在從適用於 PostgreSQL 的 Azure 資料庫 – 彈性伺服器 移動 資料時發生強制容錯移轉，任務將會停止並將需要載入。

* PostgreSQL 15.x 中採用的 SQL MERGE 命令未經認證。

## 不支援的資料類型

不支援以下資料類型：

* PostGIS

* INT4MULTIRANGE

* INT8MULTIRANGE

* 數值多重範圍

* 時間戳記多重範圍