You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure PostgreSQL服务器上创建SQL_ASCII编码的数据库?

在Azure PostgreSQL中创建SQL_ASCII编码数据库的解决方案

嘿,我来帮你搞定这个问题!首先得明确一个核心点:Azure托管的PostgreSQL是受控服务,咱们没有权限修改template1这个系统模板数据库——这就是你本地能正常执行的修改template1步骤,在Azure上完全行不通的原因,Azure限制了这类系统级操作,避免破坏服务的稳定性。

你收到的错误提示其实已经给出了正确方向:用template0作为模板来创建数据库。你只需要调整CREATE DATABASE语句,加上TEMPLATE template0参数即可,具体语句如下:

CREATE DATABASE sipis OWNER sipis ENCODING 'SQL_ASCII' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;

为啥这个方案能行?因为template0是一个干净的、不带任何用户自定义对象的基础模板数据库,它允许咱们指定和默认编码不同的格式;而template1默认继承了服务器的UTF8编码,在Azure环境下根本没法修改它的编码或者重建它。

另外你提到修改client_encoding参数没用,这很正常——这个参数只负责客户端和服务器之间的数据传输编码,和数据库本身的创建编码完全没关系,所以当然解决不了你的问题。

最后再给你捋一遍可行的操作:

  • 直接执行上面那个带TEMPLATE template0的CREATE DATABASE语句就行,不用碰任何系统模板
  • 确保你使用的sipis用户拥有创建数据库的权限(比如具备CREATEDB权限或者是超级用户)

内容的提问来源于stack exchange,提问作者Matthew Knill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 04:07:41