postgresql - AWS Aurora Postgres 12 设置排序规则
问题描述
我正在尝试将 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 参数组中的非确定性排序规则家庭。
提前致谢!
解决方案
您不能在CREATE DATABASE
语句中使用 ICU 归类。
在未来的 PostgreSQL 版本中可能会取消该限制。目前,在 PostgreSQL 中拥有非确定性排序规则的唯一方法是在列级别使用它们。
推荐阅读
- php - Codeigniter - 更新后重复的结果
- virtualbox - 如何将 qemu 映像(2 pflash + ide)转换为 virtualbox vdi?
- javascript - 文本丢失样式(即使 css 显示它应该有),但如果代码在控制台上单步执行(包括 jsfiddles)则不会
- timer - STM32 MCU 上的 DMA 到 GPIO 的可靠性如何?
- java - 如何修复 Java JMX RMI Accessible without Credentials
- c# - XAML中的WPF DataContext,为什么以及正确的方法是什么
- python - Python函数缺少位置参数
- sql - ORA-01861 当我尝试将 trunc 与 sysdate 一起使用时,文字与格式字符串不匹配
- javascript - Discord.js 货币到命令处理程序
- typescript - React Native 无法切换状态