PostgreSQL基础(七):表的基本操作(一)
表的基本操作(一)
表的构建语句,基本都会。
核心在于构建表时,要指定上一些约束。
一、约束
1、主键
2、非空
3、唯一
4、检查
5、外键
目前国内很多公司不玩这个,坑比较多,最好不要玩,真需要可以查询文档。
6、默认值
一般公司内,要求表中除了主键和业务字段之外,必须要有5个字段
created,create_id,updated,update_id,is_delete
二、触发器
触发器Trigger,是由事件出发的一种存储过程
当对标进行insert,update,delete,truncate操作时,会触发表的Trigger(看触发器的创建时指定的事件)
构建两张表,学生信息表,学生分数表。
在删除学生信息的同时,自动删除学生的分数。
先构建表信息,填充数据
为了完成级联删除的操作,需要编写pl/sql。
先查看一下PGSQL支持的plsql,查看一下PGSQL的plsql语法
构建一个存储函数,测试一下plsql
在简单了解了一下plpgsql的语法后,编写一个触发器函数。
触发器函数允许使用一些特殊变量
NEW
数据类型是RECORD;该变量为行级触发器中的INSERT/UPDATE操作保持新数据行。在语句级别的触发器以及DELETE操作,这个变量是null。
OLD
数据类型是RECORD;该变量为行级触发器中的UPDATE/DELETE操作保持新数据行。在语句级别的触发器以及INSERT操作,这个变量是null。
构建一个删除学生分数的触发器函数。
开始构建触发器,在学生信息表删除时,执行前面声明的触发器函数
当
CONSTRAINT
选项被指定,这个命令会创建一个 约束触发器 。这和一个常规触发器相同,不过触发该触发器的时机可以使用 调整。约束触发器必须是表上的AFTER ROW
触发器。它们可以在导致触发器事件的语句末尾被引发或者在包含该语句的事务末尾被引发。在后一种情况中,它们被称作是被 延迟 。一个待处理的延迟触发器的引发也可以使用SET CONSTRAINTS
立即强制发生。当约束触发器实现的约束被违背时,约束触发器应该抛出一个异常。
三、表空间
在存储数据时,数据肯定要落到磁盘上,基于构建的tablespace,指定数据存放在磁盘上的物理地址。
如果没有自己设计tablespace,PGSQL会自动指定一个位置作为默认的存储点。
可以通过一个函数,查看表的物理数据存放在了哪个磁盘路径下。
这个位置是在$PG_DATA后的存放地址
41000其实就是存储数据的物理文件
构建表空间,指定数据存放位置
构建数据库,以及表,指定到这个表空间中
其实指定表空间的存储位置后,PGSQL会在$PG_DATA目录下存储一份,同时在咱们构建tablespace时,指定的路径下也存储一份。
这两个绝对路径下的文件都有存储表中的数据信息。
进一步会发现,其实在PGSQL的默认目录下,存储的是一个link,连接文件,类似一个快捷方式
- 点赞
- 收藏
- 关注作者
评论(0)