

# Aurora PostgreSQL의 로컬 쓰기 전달 제한 사항 및 고려 사항
<a name="aurora-postgresql-write-forwarding-limitations"></a>

 현재 Aurora PostgreSQL의 로컬 쓰기 전달에는 다음과 같은 제한 사항이 적용됩니다.
+  RDS 프록시에서는 로컬 쓰기 전달이 지원되지 않습니다.
+  특정 명령문은 쓰기 전달과 함께 Aurora PostgreSQL에서 사용할 때 허용되지 않거나 부실 결과를 생성할 수 있습니다. 또한 사용자 정의 함수 및 사용자 정의 프로시저는 지원되지 않습니다. 따라서 `EnableLocalWriteForwarding` 설정은 DB 클러스터에 대해 기본적으로 꺼져 있습니다. 이 설정을 켜기 전에, 애플리케이션 코드가 이러한 제한 사항의 영향을 받지 않는지 확인하십시오.
+  다음과 같은 종류의 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` 
  +  2단계 커밋 명령: `PREPARE TRANSACTION`, `COMMIT PREPARED`, `ROLLBACK PREPARED` 
  + 사용자 정의 함수 및 사용자 정의 절차.
  +  `VACUUM` 

 다음과 같은 SQL 문을 쓰기 전달과 함께 사용할 수 있습니다.
+ DML 명령문은 `INSERT ... SELECT` 명령문 또는 `DELETE ... WHERE` 명령문과 같이 여러 부분으로 구성될 수 있습니다. 이 경우 전체 명령문이 라이터 DB 인스턴스로 전달되어 그 위치에서 실행됩니다.
+ `INSERT`, `DELETE` 및 `UPDATE`와 같은 데이터 조작 언어(DML) 문입니다.
+  이 목록에 있는 문이 포함된 `EXPLAIN` 문
+  `PREPARE` 및 `EXECUTE` 문입니다.
+  `SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }` 문.