pg修改服务器编码,关于postgresql:如何更改postgres数据库的字符编码?

我有一个使用默认字符集SQL_ASCII设置的数据库。 我想将它切换到UNICODE。 有一个简单的方法吗?另请参见stackoverflow.com/q/380924可能重复如何使用sql或phpPgAdmin更改PostgreSQL数据库的数据库编码?首先,丹尼尔的回答是正确,安全的选择。对于从SQL_ASCII更改为其他内容的特定情况,您可以作弊并简单地戳pg_database目录以重新分配...
摘要由CSDN通过智能技术生成

我有一个使用默认字符集SQL_ASCII设置的数据库。 我想将它切换到UNICODE。 有一个简单的方法吗?

另请参见stackoverflow.com/q/380924

可能重复如何使用sql或phpPgAdmin更改PostgreSQL数据库的数据库编码?

首先,丹尼尔的回答是正确,安全的选择。

对于从SQL_ASCII更改为其他内容的特定情况,您可以作弊并简单地戳pg_database目录以重新分配数据库编码。这假设您已经在预期的编码中存储了任何非ASCII字符(或者您根本没有使用任何非ASCII字符)。

然后你可以这样做:

UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8') WHERE datname = 'thedb'

这不会改变数据库的排序规则,只是如何将编码的字节转换为字符(所以现在length('£123')将返回4而不是5)。如果数据库使用"C"排序规则,则不应更改ASCII字符串的排序。您可能需要重建包含非ASCII字符的任何索引。

买者自负。转储和重新加载提供了一种方法来检查您的数据库内容实际上是您期望的编码,而事实并非如此。如果事实证明你在数据库中确实有一些错误编码的数据,那么抢救将很困难。所以,如果你可以,转储和重新初始化。

+1谢谢。 我的开发机器使用UTF8 enconding,但我的生产使用LATIN1。 因为这个,我有很多错误。

它给了我这个错误:-bash: syntax error near unexpected token('`

救我的一天,工作得很好&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值