例如从 更改C为utf8?
我尝试过这个,但似乎不允许。
postgres=# ALTER DATABASE mydb SET "Collate" To 'en_US.UTF-8';
ERROR: unrecognized configuration parameter "Collate"
Run Code Online (Sandbox Code Playgroud)
不,那是不可能的。
原因是数据库中可能存在依赖于数据库排序规则的数据结构:字符串数据类型上的索引。如果您能够即时更改排序规则,则所有这些索引都将隐式损坏。
你可能会说没关系,我们重建所有这些索引吧。好吧,如果您准备好这样做,有一种方法:pg_dump数据库,使用所需的排序规则创建一个新数据库,并将转储恢复到新数据库中。当然,这比重建字符串索引需要更长的时间,但费用是相同的数量级,而且这是一种安全的方法。
您可能想pg_database手动干预系统目录,但我只能劝阻您这样做:俗话说,如果您这样做并且事情破裂了,您就可以保留两部分。
| 归档时间: |
|
| 查看次数: |
10366 次 |
| 最近记录: |