Aurora DSQL 中不支持的 PostgreSQL 功能
Aurora DSQL 与 PostgreSQL 兼容。这意味着 Aurora DSQL 支持核心关系功能,例如 ACID 事务、二级索引、联接、插入和更新。有关支持的 SQL 功能的概述,请参阅支持的 SQL 表达式。
以下各节重点介绍 Aurora DSQL 中目前不支持哪些 PostgreSQL 功能。
不支持的对象
Aurora DSQL 不支持的对象包括:
- 
            单个 Aurora DSQL 集群上的多个数据库 
- 
            临时表 
- 
            触发 
- 
            类型(部分支持) 
- 
            表空间 
- 
            用 SQL 以外的语言编写的函数 
- 
            序列 
- 
            分区 
不支持的约束
- 
            外键 
- 
            排他性约束 
不受支持的命令
- 
            ALTER SYSTEM
- 
            TRUNCATE
- 
            SAVEPOINT
- 
            VACUUM注意Aurora DSQL 不需要 vacuum 操作。系统无需手动 vacuum 命令,即可自动维护统计数据并管理存储优化。 
不支持的扩展
Aurora DSQL 不支持 PostgreSQL 扩展。下表显示了不受支持的扩展:
- 
            PL/pgSQL
- 
            PostGIS
- 
            PGVector
- 
            PGAudit
- 
            Postgres_FDW
- 
            PGCron
- 
            pg_stat_statements
不支持的 SQL 表达式
下表描述了 Aurora DSQL 中不支持的子句。
| 类别 | 主要子句 | 不支持的子句 | 
|---|---|---|
| 
 | 
 | 
 | 
| 
 | 
 | |
| 
 | ||
| 
 | 
 | 所有  | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | 
 | 
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | 
 | 
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | |
| 
 | 
 | 您无法创建其它数据库。 | 
1 请参阅 Aurora DSQL 中的异步索引,以便在指定表的列上创建索引。
Aurora DSQL 有关 PostgreSQL 兼容性的注意事项
使用 Aurora DSQL 时,请考虑以下兼容性限制。有关一般注意事项,请参阅使用 Amazon Aurora DSQL 的注意事项。有关配额和限制,请参阅 Amazon Aurora DSQL 中的集群配额和数据库限制。
- 
            Aurora DSQL 使用单个名为 postgres的内置数据库。您无法创建其它数据库,也无法重命名或删除postgres数据库。
- 
            postgres数据库使用 UTF-8 字符编码。您不能更改编码。
- 
            数据库仅使用 C排序规则。
- 
            Aurora DSQL 使用 UTC作为系统时区。您无法使用参数或 SQL 语句(如SET TIMEZONE)修改时区。
- 
            PostgreSQL Repeatable Read的事务隔离级别是固定的。
- 
            事务具有以下约束: - 
                事务不能混合 DDL 和 DML 操作 
- 
                一个事务只能包含 1 条 DDL 语句 
- 
                一个事务最多可以修改 3000 行,而无论二级索引的数量如何 
- 
                3000 行的限制适用于所有 DML 语句( INSERT、UPDATE、DELETE)
 
- 
                
- 
            数据库连接在 1 小时后超时。 
- 
            Aurora DSQL 目前不让您运行 GRANT [permission] ON DATABASE。如果您尝试运行该语句,Aurora DSQL 会返回错误消息ERROR: unsupported object type in GRANT。
- 
            Aurora DSQL 不让非管理员用户角色运行 CREATE SCHEMA命令。您无法运行GRANT [permission] on DATABASE命令并授予对数据库的CREATE权限。如果非管理员用户角色尝试创建架构,Aurora DSQL 会返回错误消息ERROR: permission denied for database postgres。
- 
            非管理员用户无法在公有架构中创建对象。只有管理员用户才能在公有架构中创建对象。管理员用户角色有权向非管理员用户授予对这些对象的读取、写入和修改权限,但不能授予对公有架构本身的 CREATE权限。非管理员用户必须使用不同的、用户创建的架构来创建对象。
- 
            Aurora DSQL 不支持命令 ALTER ROLE [] CONNECTION LIMIT。如果您需要提高连接限制,请联系 AWS 支持人员。
- 
            Aurora DSQL 不支持 asyncpg,这是一款适用于 Python 的异步 PostgreSQL 数据库驱动程序。