Aurora PostgreSQL 中的本地写入转发的限制和注意事项 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Aurora PostgreSQL 中的本地写入转发的限制和注意事项

目前,Aurora PostgreSQL 中的本地写入转发有以下限制:

  • RDS 代理不支持本地写入转发。

  • 在具有写入转发功能的 Aurora PostgreSQL 中不允许使用某些语句,否则可能产生过时的结果。此外,不支持用户定义的函数和用户定义的过程。因此,默认情况下,数据库集群的 EnableLocalWriteForwarding 设置处于关闭状态。在启用它之前,请检查以确保您的应用程序代码不受任何这些限制的影响。

  • 写入转发不支持以下类型的 SQL 语句:

    注意

    这些语句可以由您在应用程序中隐式使用,也可以由 PostgreSQL 协议推断出来。例如,PL/SQL 异常处理可能会导致使用 SAVEPOINT,但该语句不受支持。

    • ANALYZE

    • CLUSTER

    • COPY

    • 游标 - 不支持游标,因此在使用本地写入转发之前,请务必将其关闭。

    • 数据定义语言(DDL)语句

    • GRANT|REVOKE|REASSIGN OWNED|SECURITY LABEL

    • LISTEN / NOTIFY

    • LOCK

    • SAVEPOINT

    • SELECT INTO

    • SET CONSTRAINTS

    • 序列更新:nextval()setval()

    • TRUNCATE

    • 两阶段提交命令:PREPARE TRANSACTIONCOMMIT PREPAREDROLLBACK PREPARED

    • 用户定义的函数和用户定义的过程。

    • VACUUM

您可以考虑将以下 SQL 语句与写入转发一起使用:

  • DML 语句可能由多个部分组成,如 INSERT ... SELECT 语句或 DELETE ... WHERE 语句。在这种情况下,整个语句将转发到写入器数据库实例并在此处运行。

  • 数据操作语言 (DML) 语句,如 INSERTDELETEUPDATE

  • EXPLAIN 语句和此列表中的语句。

  • PREPAREEXECUTE 语句。

  • SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } 语句。