PostgreSQL的学习-序列
2024-08-30 21:19:38
序列对象(也叫序列生成器)都是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。下面序列函数,为我们从序列对象中获取最新的序列值提供了简单和并发读取安全的方法.
下面是创建一张表的序列:
1.直接在表中指定该字段类型为serial类型
create table citys(
id serial,
name text
)
2.先独立创建序列,然后在新建表的时候指定就行了
create sequence citys_id_seq increment by 1 minvalue 1 no maxvalue start with 1;
create table citys(
id int4 not null default nextval('sequence citys_id_seq'),
name text
)
以下是序列的几种函数:
nextval(regclass):递增序列对象到它的下一个数值并且返回该值。这个动作是自动完成的。即使多个会话并发运行nextval,每个进程也会安全地收到一个唯一的序列值。
currval(regclass):在当前会话中返回最近一次nextval抓到的该序列的数值。(如果在本会话中从未在该序列上调用过 nextval,那么会报告一个错误。)请注意因为此函数返回一个会话范围的数值,而且也能给出一个可预计的结果,因此可以用于判断其它会话是否执行过nextval。
lastval():功能基本等同于currval(regclass),只不过没有参数而已
setval(regclass, bigint):重置序列对象的值,设置序列的last_value字段为指定数值并且将其is_called字段设置为true,表示下一次nextval将在返回数值之前递增该序列。
setval(regclass, bigint, boolean):可以看出比上一个函数多了一个参数,这个参数针对is_calles的字段来说
例子:
select nextval('c_pf_t_055_pf_055_id_seq'::regclass) ; --表c_pf_t_055的序列 select currval('c_pf_t_055_pf_055_id_seq'::regclass); select setval('c_pf_t_055_pf_055_id_seq'::regclass,88888);
最新文章
- 基于node.js的压缩合并安装
- WeView 里引用的H5中的文字 到行末尾 文字被切割
- 记账类APP竞品分析-挖财与随手记
- C#中的接口实现多态
- ROM、RAM、DRAM、SRAM和FLASH区别
- HTML表单的问题
- Labview中局部变量和全局变量
- virtualbox怎么装系统OVA虚拟包大全一键安装
- 如何查看.Net FrameWork,VC++ 等安装包的启动参数
- Hortonworks 用于做 Sentimental Analysis的Hiveddl.sql 文件
- 安装配置sentry服务
- hdu3018欧拉回路题
- LeetCode之“链表”:Remove Duplicates from Sorted List &;&; Remove Duplicates from Sorted List II
- IDEA 创建Web项目
- sql 查询优化小计
- NIO学习笔记二
- hdu 6393 Traffic Network in Numazu (树链剖分+线段树 基环树)
- oracle 常用(一)
- Delphi 完全时尚手册之 Visual Style 篇 (界面不错) 转自http://blog.csdn.net/iseekcode/article/details/4733229
- Python selenium chrome 环境配置