

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Aurora PostgreSQL 中本機寫入轉送的限制和考量
<a name="aurora-postgresql-write-forwarding-limitations"></a>

 下列限制目前適用於 Aurora PostgreSQL 中的本機寫入轉送：
+  RDS Proxy 不支援本機寫入轉送。
+  當您在具有寫入轉送的 Aurora PostgreSQL 中使用某些陳述式時，系統不允許使用這些陳述式或這些陳述式可能會產生過時的結果。此外，不支援使用者定義的函數和使用者定義的程序。因此，資料庫叢集的 `EnableLocalWriteForwarding` 設定預設為關閉。在開啟此功能之前，請檢查以確定您的應用程式程式碼不受上述任何限制的影響。
+  寫入轉送不支援下列 SQL 陳述式類型：
**注意**  
您可以在應用程式中隱含地使用這些陳述式，或由 PostgreSQL 通訊協定推斷。例如，PL/SQL 例外狀況處理可能會導致使用 SAVEPOINT，這不是支援的陳述式。
  +  `ANALYZE` 
  +  `CLUSTER` 
  +  `COPY` 
  + 游標 – 不支援游標，因此請務必在使用本機寫入轉送之前將其關閉。
  +  資料定義語言 (DDL) 陳述式 
  +  `GRANT`\$1`REVOKE`\$1`REASSIGN OWNED`\$1`SECURITY LABEL`
  +  `LISTEN / NOTIFY` 
  +  `LOCK` 
  +  `SAVEPOINT` 
  +  `SELECT INTO` 
  +  `SET CONSTRAINTS` 
  +  序列更新：`nextval()`、`setval()`
  +  `TRUNCATE` 
  +  兩階段遞交命令：`PREPARE TRANSACTION`、`COMMIT PREPARED`、`ROLLBACK PREPARED`
  + 使用者定義的函數和使用者定義的程序。
  +  `VACUUM` 

 您可以考慮使用下列 SQL 陳述式搭配寫入轉送：
+ DML 陳述式可能包含多個部分，例如 `INSERT ... SELECT` 陳述式或 `DELETE ... WHERE` 陳述式。在這種情況下，系統會將整個陳述式轉送到寫入器資料庫執行個體並在該處執行陳述式。
+ 資料操作語言 (DML) 陳述式，例如 `INSERT`、`DELETE` 和 `UPDATE`。
+  包含此清單中陳述式的 `EXPLAIN` 陳述式
+  `PREPARE` 和 `EXECUTE` 陳述式。
+  `SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }` 陳述式。