自学内容网 自学内容网

PostgreSQL约束、表空间、视图、物化视图、索引、事务(MVCC和锁)、数据备份和恢复

一、PostgreSql的表约束:

1、构建表:create table  

2、构建表时指定约束:

   (1)主键约束: primary  key,

create  table    table_name(

        id    bigserial   primary  key,

        name  varchar(32)     not  null,

        id_card   varchar(32)    unique

        price   numeric     check(price > 0),

        discount_price    numeric     check(discount_price > 0),

        check(price  >  discount_price )

);

(2)非空约束:not  null,

(3)唯一约束:unique,

(4)检查约束: check(price > 0)

(5)外键约束(不建议,会导致级联关联)

二、默认值:一般公司要求除了主键和业务,必须要有5个字段:

created

created_id

updated

update_id

deleted

三、触发器:Trigger,本质上是由事件触发的一种存储过程

如:对表进行insert、update、delete、truncate时,会触发表的Trigger

四、表空间(tablespace)

在PostgreSQL中,在存储数据时,数据必须要落到磁盘。基于构建的tablespace,指定数据存储的磁盘路径;默认都是在pgsql的安装目录下,data文件夹下

select  pg_relation_file_path('表名')

当创建表时指定了表空间,则默认存储表空间存储了一个链接,指向指定的实际存储的磁盘目录

五、视图:

和mysql没区别,对用户来说,就是一张真实的表,对开发就是一条sql:

create   view   视图名称   as

(select    id,name,real_name  from  user)     ----  仅查询部分字段,不查询密码

简单视图允许写操作,但不推荐,因为视图实际上是写的表数据

六、索引:

分类:

 pgsql中使用的是B-Tree索引

Hash索引(和msql一样)

GIN索引:主要针对字段有多个,比如数组

七、事务

MVCC和锁

1、mvcc

        事务的ACID:

        事务隔离级别:

        mvcc执行原理:隐藏字段 +根据事务隔离级别去查询哪行的数据

        保存点(savepoint):事务部分提交和回滚

2、锁:

行锁和表锁

八、备份和数据恢复

1、sql导出和导入

2、文件和文件夹备份

3、基于redolog的数据备份和恢复


原文地址:https://blog.csdn.net/weixin_41992498/article/details/140613525

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!