在 Postgres 上更改排序规则(保持编码)是不是安全?

Posted

技术标签:

【中文标题】在 Postgres 上更改排序规则(保持编码)是不是安全?【英文标题】:Is it safe to change Collation on Postgres (keeping encoding)?在 Postgres 上更改排序规则(保持编码)是否安全? 【发布时间】:2015-02-10 04:27:04 【问题描述】:

我有一个 Postgres 9.3 数据库,错误地设置为:

但我需要它:

由于编码不变,转储数据库并稍后将其恢复(请参阅here)到带有新Collation/Character type的数据库是安全的吗?

【问题讨论】:

【参考方案1】:

非常安全——排序规则只是告诉 Postgres 在对文本进行排序时应用哪组规则。

您甚至可以在 order by 子句中基于查询动态设置它,并且应该能够更改它而无需转储数据库。

【讨论】:

感谢您的回答。无论如何,根据我链接的答案,它似乎无法“即时”更改。事实上,在 pgAdmin 上,这些字段是灰色的。 该问题与基于其 url 的编码有关。更改现有表的排序规则的语法是ALTER [ COLUMN ] column [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ],如documented here。 我只是做了dump-reload方法,因为我需要更改整个数据库的标准排序规则。

以上是关于在 Postgres 上更改排序规则(保持编码)是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

postgres - 无法创建排序规则

如何在 SELECT 语句中即时更改编码?

AWS Aurora Postgres 12 设置排序规则

SQL server中如何更改排序规则

更改SQL Server 2012 数据库排序规则

使用 pg_dump 将 Postgres 从 Windows 迁移到 Linux 时如何选择正确的排序规则来创建数据库?