当前位置: 首页 > news >正文

【0401】Postgres内核 CREATE DATABASE database-name 源码实现 ①

文章目录

  • 1. CREATE DATABASE 语句
    • 1.1 CREATE DATABASE 语法
    • 1.2 CREATE DATABASE 调用栈
  • 2. CREATE DATABASE 内核实现
    • 2.1 从 CreatedbStmt 节点树 提取 options
    • 2.2 获取 datdba(proposed owner) OID
    • 2.3 当前用户具有 create DB 权限?
    • 2.4 获取 database template

1. CREATE DATABASE 语句

CREATE DATABASE 用于创建一个新的 PostgreSQL 数据库。

要创建数据库,您必须是超级用户(superuser)或拥有特殊权限 CREATEDB 。参阅 CREATE ROLE。

默认情况下,新数据库将通过克隆标准系统数据库 template1 来创建。您可以通过写入“TEMPLATE name” 来指定不同的模板。特别是,通过写入“TEMPLATE template0”,您可以创建一个原始数据库(其中不存在任何用户定义的对象,且系统对象未被更改),其中仅包含您的 PostgreSQL 版本预定义的标准对象。如果您希望避免复制可能已添加到 template1 的任何安装本地对象,这将很有用。

1.1 CREATE DATABASE 语法

Postgres支持的 CREATE DATABASE 语法如下:

  • postgres=# \h CREATE DATABASE
    • Command: CREATE DATABASE

http://www.mrgr.cn/news/89804.html

相关文章:

  • 前端控制器模式
  • C# 函数多个返回值
  • 2025美赛数学建模C题:奥运金牌榜,完整论文代码模型目前已经更新
  • 用layui表单,前端页面的样式正常显示,但是表格内无数据显示(数据库连接和获取数据无问题)——已经解决
  • C语言-构造数据类型
  • 校验收货地址是否超出配送范围实战3(day09)
  • VSCode便捷开发
  • k8s部署go-fastdfs
  • Android LifecycleOwner 闪退,java 继承、多态特性!
  • python编程-内置函数range(),round()详解
  • 【GeeRPC】Day1:服务端与消息编码
  • 网络编程 day2
  • .net8.0使用EF连接sqlite数据库及使用Gridify实现查询的简易实现
  • 2025.2.7 Python开发岗面试复盘
  • 一文吃透!DataStage 全面概述与核心知识要点大公开
  • 如何在Windows上使用Docker
  • xinference 安装(http导致错误解决)
  • hive的几种复杂数据类型
  • 深度学习01 神经网络
  • 使用bucardo实现postgresql数据库双主同步
  • 一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署
  • 二分查找算法 (典型算法思想)—— OJ例题算法解析思路
  • MFC 学习笔记目录
  • 车型检测7种YOLOV8
  • 订单状态监控实战:基于 SQL 的状态机分析与异常检测
  • 制造业设备状态监控与生产优化实战:基于SQL的序列分析与状态机建模