zoukankan      html  css  js  c++  java
  • 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语句的封装

  • 相关阅读:
    java mail使用qq邮箱发邮件的配置方法
    (利用tempdata判断action是直接被访问还是重定向访问)防止微信活动中用户绕过关注公众号的环节
    判断浏览器为微信浏览器
    解决表单(搜索框)回车的时候直接提交了表单不运行js的问题
    传智播客JavaWeb day11--事务的概念、事务的ACID、数据库锁机制、
    传智播客JavaWeb day10-jdbc操作mysql、连接数据库六大步骤
    页面上常用的一些小功能--QQ、回到顶部
    手机端禁止网页页面放大代码
    Resharp注册码
    NueGet设置package Source
  • 原文地址:https://www.cnblogs.com/jinzhenshui/p/1513064.html
Copyright © 2011-2022 走看看