• Postgresql:创建数据库 先有蛋?先有鸡?


    如下:

    第一个蛋? ..\share\下的postgres.bki、*.sql文件

    initdb.exe 根据 ..\share\下的postgres.bki、*.sql文件 初始化数据库存储簇。这时该初始化簇包含3个数据库、一个supuser!

    • 默认调用initdb.exe的os用户(postgres)的同名用户连接数据库(postgres)
    • virgin(处女——纯洁啊)模板数据库tmeplate0:模板、不可以连接
    • 通用模板数据库template1:模板,可以连接
    • 默认调用initdb.exe的os用户(postgres)的同名的超级用户(postgres)

    create database  new_db_name[template {template1(默认)|template_name}]

    • 这里的template_name指模板数据库可以是任何数据库。super用户和owner用户可以想怎么做就怎么做,否则只有模板数据库才可以让普通具有createdb权限的用户指定该数据库作为模板
    • 默认用户数据库:完全可以干掉!默认情况下,postgresql让template1默认数据库可以接受用户的连接!
    • 默认数据库可以重建,他就是普通用户数据库
    • template1模板数据库也可以干掉!不过你要知道,他基本上是最后一个可以删除的数据库了!如果没有其他正常的用户数据库,你就准备重新 initdb.exe吧!!!
    • template1数据库可以重建!必须要制定其他模板了!如果没有该库,就不能使用没有template子句的create database 了

    数据库的两个属性标志

    • datistemplate:是否是可以供普通用户可以使用的模板数据库,对supuser 和 owner 用户无效
    • datallowconn:是否允许用户连接到该数据库!任何要作为模板进行clone的数据库必须是干净的,不能有其他连接!对对supuser 和 owner 用户也是如此!

    create database db_name

    [

      [with]

    [owner [=] other_role_name]  --只有superuser才能指定其他owner。默认当前 role

    [encoding [=] encoding_name]  --字符集编码,默认utf8

    [template [=] template_db_name]  --(模板)数据库,默认template1

    [tablespace [=] tablespace_name]  --默认表空间,默认pg_default

    [connection limit [=] connlimit]  --运行的并非连接数,默认不限制(-1)

    ]

    创建数据库必须有create database 权限 或 superuser

    不允许在事务内执行

    使用程序createdb.exe是对create database语句的封装

  • 相关阅读:
    省考失败总结
    Oracle基本介绍及用户的管理2
    Linux 阿里云CentOS7.6 安装 redis6.2.1 及使用客户端工具连接
    阿里云centOS7.6安装配置MySQL8.0
    ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file 解决过程
    Vue SSM搭建一个简单的Demo前后端分离含增删改查(CRUD)、分页、批量功能
    Mybatis (ParameterType) 如何传递多个不同类型的参数
    eclipse的一些常用快捷键
    IntelliJ IDEA常用快捷键总结
    安装vue错误详情解决办法
  • 原文地址:https://www.cnblogs.com/jinzhenshui/p/1513064.html
Copyright © 2020-2023  润新知