PostgreSQL16 使用Navica创建数据库 作者:马育民 • 2026-04-26 22:39 • 阅读:10008 # 创建数据库 [](https://www.malaoshi.top/upload/0/0/1GW3CgzKDDzr.png) ## 所有者 选你登录的用户名 你不填,自动把 “当前登录的用户” 当成所有者,不会报错! ## 模板 选择 `template0` ## 【排序规则 / 字符分类】的作用 | 配置项 | 推荐值 | 原因 | |--------|--------|------| | 编码 | `UTF8` | 支持所有中文和特殊字符,避免乱码 | | 排序规则排序 | `zh_CN.UTF-8` | 按中文拼音排序,列表展示正常 | | 字符分类 | `zh_CN.UTF-8` | 中文大小写、比较行为正常 | ## 连接限制 -1 表示不限制 ## sql预览 ``` CREATE DATABASE "test" WITH OWNER = "postgres" TEMPLATE = "template0" ENCODING = 'UTF8' LC_COLLATE = 'zh_CN.UTF-8' LC_CTYPE = 'zh_CN.UTF-8' ; ``` # 为什么必须选择模板 **PostgreSQL 创建数据库,必须基于一个“模板库”,不能凭空创建!** 因为 PostgreSQL 设计机制就是: **所有新数据库 = 复制模板库(template1 或 template0)** 模板库里自带了: - 系统表 - 系统函数 - 系统视图 - 默认编码、排序规则 **没有模板,就没有数据库!** --- ### 两个模板的区别 ##### 1. template1(默认模板) - 你平时界面点创建,**自动用它** - 它的编码、排序规则**固定死了** - 如果你想指定新的排序规则(比如 zh_CN.UTF-8) **→ 和模板冲突 → 直接报错!** ##### 2. template0(干净模板) - 官方专门用来**自定义编码、自定义排序**的干净模板 - 你可以随便指定: - UTF8 - zh_CN.UTF-8 - **不会冲突!不会报错!** ### 总结 **PostgreSQL:必须复制模板建库** **想自定义中文排序 → 必须用 template0** 原文出处:http://www.malaoshi.top/show_1GW3Cgse7uL4.html