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

【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.kler.cn/a/539677.html

相关文章:

  • ECG分析0210
  • C++基础系列【8】如何解决编译器报的错误
  • 【C++】命名空间
  • git命令行删除远程分支、删除远程提交日志
  • Rust语言进阶之标准输入: stdin用法实例(一百零五)
  • DeepSeek 评价开源框架存在幻觉么?
  • 65【服务器攻击原理讲解】
  • 大模型赋能网络安全整体应用流程概述
  • c/c++蓝桥杯经典编程题100道(14)矩阵转置
  • 水上安全杂志水上安全杂志社水上安全编辑部2024年第24期目录
  • 51单片机俄罗斯方块计分函数
  • SpringBoot 01 简单介绍与应用
  • ZooKeeper 和 Dubbo 的关系:技术体系与实际应用
  • 如何在 Linux 上为 SSH 启用 MFA(Google Authenticator 方式)
  • C++ Primer sizeof运算符
  • 金字塔原理——阅读笔记
  • 微服务 day01 注册与发现 Nacos OpenFeign
  • Perl语言的云计算
  • idea启动报错# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffccf76e433
  • VueRouter 的路由匹配与组件渲染
  • JUnit 5 TestInstanceFactory 功能与使用详解
  • 第二十二章:游戏结缘与现实的相遇
  • SQL-leetcode—1327. 列出指定时间段内所有的下单产品
  • 使用JavaScript接入星火大模型:构建智能问答系统
  • 4.2 检查k8s集群准入配置和其他准备工作
  • 使用matlab 对传递函数分析bode图和阶跃函数