您现在的位置是:首页 > 博客网站制作 > 心得笔记心得笔记

PostgreSQL Sequence序列的使用详解

杨青青2022-02-20【心得笔记】人已围观

简介PostgreSQL是一种关系型数据库,和Oracle、MySQL一样被广泛使用。平时工作主要使用的是PostgreSQL,所以有必要对其相关知识做一下总结和掌握,先总结下序列。一、Sequence序列Seq

PostgreSQL是一种关系型数据库,和Oracle、MySQL一样被广泛使用。平时工作主要使用的是PostgreSQL,所以有必要对其相关知识做一下总结和掌握,先总结下序列。

一、Sequence序列

Sequence是一种自动增加的数字序列,一般作为行或者表的唯一标识,用作代理主键。

1、Sequence的创建

例子:创建一个seq_commodity,最小值为1,最大值为9223372036854775807,从1开始,增量的步长为1,缓存为1的循环排序Sequence。

SQL语句如下:

CREATESEQUENCEseq_commodity
INCREMENT1
MINVALUE1
MAXVALUE9223372036854775807
START1
CACHE1
CYCLE;//循环,表示到最大值后从头开始

2、查找Sequence中的值

1SELECTnextval('seq_commodity');

这里nextval表示下一个值

3、修改Sequence

用altersequence来修改,除了start以外的所有sequence参数都可以被修改,

altersequence的例子(SQL语句)

ALTERSEQUENCEseq_commodity
INCREMENT10
MAXVALUE10000
CYCLE
NOCACHE;

当然如果想要修改start的值,可以先用dropsequence删掉,然后再重新创建。

4、删除DropSequence

1DROPSEQUENCEseq_commodity;

5、Sequence分配策略

调用selectnextval(seq_commodity);返回下一个序列号后,系统优先给用户分配一个序号,接着系统的次Sequence立刻加上设置的步长(increment1),不论此序号用户是否使用;

调用selectcurrval(seq_commodity);返回当前的序列号,该序列号只要没有被使用,就不会变化,如果当前请求一直使用,那么不会再分配给其他的请求,因为该序列号已经分配给当前请求。

补充:PostgreSQL获取SEQUENCE列表

我就废话不多说了,大家还是直接看代码吧~

1SELECT"c"."relname"FROM"pg_class""c"WHERE"c"."relkind"='S';

结束~

Tags:

很赞哦! ()

随机图文

文章评论

站点信息

  • 建站时间:2011年01月12日
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计625篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们