加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSql创建数据库

发布时间:2020-12-13 18:14:52 所属栏目:百科 来源:网络整理
导读:PostgreSql创建数据库的语法是: CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name] [ TEMPLATE [=] template] [ ENCODING [=] encoding] [ LC_COLLATE [=] lc_collate] [ LC_CTYPE [=] lc_ctype] [ TABLESPACE [=] tablespace_name] [ CONNECTION LI

PostgreSql创建数据库的语法是:

CREATE DATABASE name

[ [ WITH ] [ OWNER [=] user_name]

[ TEMPLATE [=] template]

[ ENCODING [=] encoding]

[ LC_COLLATE [=] lc_collate]

[ LC_CTYPE [=] lc_ctype]

[ TABLESPACE [=] tablespace_name]

[ CONNECTION LIMIT[=] connlimit ] ]

其中方括号内的都是为可选的参数,换句话说创建一个数据库的语法可是是这样:

Create database database_name;

那么参数都是为默认的,Owner就是当前的用户,template是template1,encoding是template1的编码,LC_COLLATE,LC_CTYPE,TABLESPACE,CONNECTIONLIMIT与template1的配置保持一致。

PostgreSql数据库中默认存在两个模板template0,template1,其实template0是templat1的一个克隆,在安装完数据库后默认存在的,创建数据库时不一定要使用这两个模板中的一个,可以使别的数据库。如存在一个数据库test需要创建数据库testdb,并且以test为模板,那么这个时候test数据不能有任何连接。

下面对参数进行解释:

OWNER:表示拥有者,一般都是创建者;

TEMPLATE:表示创建数据库的模板;

ENCODING:表示新创建的数据库的字符集,如'SQL_ASCII',LATIN1;

LC_COLLATE: 表示字符串排序规则,如collate‘C’或者’de_DE’,’es_ES’;

LC_CTYPE:一般与LC_COLLATE保持一致,指的是字符分类;

TABLESPACE:表示新建的数据库在那个表空间,默认为default;

Connection LImIT:表示并发的连接数;

需要注意的是

1、 在创建数据库时需要超级用户;

2、 并发连接数只是一个近似的值,并不是精确的,比如100个连接,已经使用99个,那么此时两个连接需要连接,此时很可能两个连接都失败,当然如果是超级用户的话是不受这个限制的;

3、 TABLESPACE是另外创建的,如:

Create tablespace tablespace_name LOCATION ‘C:/data’;

4、 特别注意的是template参数指的是需要创建的数据库的模板,真实创建时只是先克隆这个template,如果模板数据库存在数据比如表中存在数据,存在索引等,那么ENCODING,LC_COLLATE,LC_CTYPE三个参数需要你保持一致,因为不一致可能会由于编码字符集不匹配而导致乱码等问题;

5、 在创建数据库或者数据库表空间时都不能再一个事务快中(cannot be executed inside a transaction block);

6、 可以在命令行中执行createdb命令来创建数据库,-O就是拥有者,-l相当于lc-collateand --lc-ctype,-T就是指定模板,-E指的是字符集,dbname指的是数据库名;

7、 创建数据库例子:

Create database testdb1 owner=postgres

template= template1

ENCODING = 'UTF8'

LC_COLLATE='Chinese(Simplified)_People''s RepublicofChina.936'

LC_CTYPE = 'Chinese (Simplified)_People''sRepublic of China.936'

CONNECTION LIMIT = 1000;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读