在 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 上更改排序规则(保持编码)是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章
使用 pg_dump 将 Postgres 从 Windows 迁移到 Linux 时如何选择正确的排序规则来创建数据库?