AWS Aurora Postgres 12 设置排序规则
Posted
技术标签:
【中文标题】AWS Aurora Postgres 12 设置排序规则【英文标题】:AWS Aurora Postgres 12 Setting Collation 【发布时间】:2021-12-03 06:18:45 【问题描述】:我正在尝试将 AWS Aurora Postgres 12 上的排序规则设置为用户定义的排序规则类型。
CREATE COLLATION ndcoll (provider = icu, locale = 'und', deterministic = false);
我能够很好地创建排序规则。它最终被输入到 pg_collations 表中。
但是,当我尝试使用这个新的用户定义排序规则创建数据库时,我不断收到错误 SQL Error [42809]: ERROR: invalid locale name: "ndcoll"
这是创建数据库语句:
create database "foo" with template 'bar' lc_collate = "ndcoll";
我知道还有一种方法可以使用自定义参数组在服务器级别设置排序规则。但是我使用 aurora-postgres 12 的参数组系列没有可用于设置排序规则的参数。创建用户定义的排序规则后,我重新启动了 Aurora 服务器,但仍然无法让数据库识别语言环境。我可能也不了解 locale 和 lc_collate 。也许从根本上我有误解。
是否有人对我如何使用用户定义的排序规则有任何见解 1)使用此用户定义的排序规则创建新数据库或 2)将服务器级别的排序规则设置为 aurora 中的非确定性排序规则- postgres12 参数组族。
提前致谢!
【问题讨论】:
我不知道 Aurora,它在很多方面都不同,但是在 PostgreSQL 中你不能使用 ICU 排序规则作为数据库排序规则。 【参考方案1】:您不能在 CREATE DATABASE
语句中使用 ICU 排序规则。
在未来的 PostgreSQL 版本中可能会取消该限制。 目前,在 PostgreSQL 中使用非确定性排序规则的唯一方法是在列级别使用它们。
【讨论】:
以上是关于AWS Aurora Postgres 12 设置排序规则的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 AWS S3 复制到 Aurora Postgres
Amazon Aurora Postgres 是不是支持 lambda 调用?
“TRUNCATE”处或附近的语法错误 - Aurora Postgres 10.12
未执行 Aurora 目标的 AWS Glue Pre 和 Post 操作