当前位置: 首页 > news >正文

PostgreSQL serial类型

serial类型和序列

postgresql序列号(SERIAL)类型包括

  • smallserial(smallint,short),
  • serial(int)
  • bigserial(bigint,long long int)

不管是smallserial,serial还是bigserial,其范围都是(1,9223372036854775807),但是序列号类型其实不是真正的类型,当声明一个字段为序列号类型时其实是创建了一个序列,INSERT时如果没有给该字段赋值会默认获取对应序列的下一个值。

操作

建表的时添加序列

create table tbl_serial(a serial,b varchar(2));

单独创建序列再使用

 create sequence sql_tbl_serial2_a 
increment by 1 
minvalue 1 
no maxvalue 
start with 1;create table tbl_serial2(a int not null default nextval('sql_tbl_serial2_a'),b varchar(2)
);

创建序列

Syntax:
CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] name [ INCREMENT [ BY ] increment ][ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ][ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ][ OWNED BY { table_name.column_name | NONE } ]

INCREMENT BY : 每次序列增加(或减少)的步长

MINVALUE : 序列最小值,NO MINVALUE表示没有最小值

MAXVALUE : 序列最大值,NO MAXVALUE表示没有最大值

START WITH :以什么序列值开始

CYCLE : 序列是否循环使用

OWNED BY : 可以直接指定一个表的字段,也可以不指定。

需要改序列

Syntax:
ALTER SEQUENCE [ IF EXISTS ] name [ INCREMENT [ BY ] increment ][ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ][ START [ WITH ] start ][ RESTART [ [ WITH ] restart ] ][ CACHE cache ] [ [ NO ] CYCLE ][ OWNED BY { table_name.column_name | NONE } ]

序列涉及的函数有

函 数返 回 类 型描 述
currval( regclass )bigint获取指定序列最近一次使用netxval后的数值,如果没有使用nextval而直接使用currval会出错。
lastval()bigint返回最近一次用 nextval 获取的任意序列的数值
nextval( regclass )bigint递增序列并返回新值
setval( regclass,bigint )bigint设置序列的当前数值
setval( regclass,bigint ,boolean )bigint设置序列的当前数值以及 is_called 标志,如果为true则立即生效,如果为false,则调用一次nextval后才会生效。

重命名

我有一个名为pivot_device_user的表,它的ID为not null default nextval(‘pivot_device_user_id_seq’::regclass)。在Postgres中重命名为nextval(‘…’)

然后我决定将我的表重命名为pivot_box_user,但nextval(…)仍然是nextval(‘pivot_device_user_id_seq’::regclass)。我想将它更改为nextval(‘pivot_box_user_id_seq’::regclass)。

如果您重命名序列,则其OID保持不变。因此,所有你需要做的是rename the sequence:

ALTER SEQUENCE pivot_device_user_id_seq RENAME TO pivot_box_user_id_seq; 

查询当前序列值

SELECT currval('sequence_name'::regclass);

使用当前序列值,下个序列值递增

SELECT nextval('sequence_name'::regclass);

问题

如果一个序列是NO CYCLE,当序列值全部使用完会怎样呢?

如果序列值用完了当然是错误了!!!如果是CYCLE则会重新从START处开始再次循环。

相关文章:

PostgreSQL serial类型

serial类型和序列 postgresql序列号(SERIAL)类型包括 smallserial(smallint,short),serial(int)bigserial(bigint,long long int) 不管是smallserial,serial还是bigserial,其范围都是(1,9223372036854775807)&#…...

[创业之路-76] - 创业公司如何在长期坚持中顺势而为?诚迈科技参观交流有感

目录 一、创业环境 1.1. VUCA乌卡时代:易变、复杂、不确定性、模糊的时代 1.2. 中国用了四十年的时间完成了三次工业革命:机械化、电气化、数字化 1.3. 中国正在经历着第四次工业革命:智能化、生态化、拟人化 1.4 国产替代:国…...

人脸修复祛马赛克算法CodeFormer——C++与Python模型部署

一、人脸修复算法 1.算法简介 CodeFormer是一种基于AI技术深度学习的人脸复原模型,由南洋理工大学和商汤科技联合研究中心联合开发,它能够接收模糊或马赛克图像作为输入,并生成更清晰的原始图像。算法源码地址:https://github.c…...

linux入门到精通-第三章-vi(vim)编辑器

目录 文本编辑器gedit介绍vi(vim)命令模式命令模式编辑模式末行模式 帮助教程保存文件切换到编辑模式光标移动(命令模式下)复制粘贴删除撤销恢复保存退出查找替换可视模式替换模式分屏其他用法配置文件 文本编辑器 gedit介绍 gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器…...

Mybatis面试题(三)

文章目录 前言一、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签?二、当实体类中的属性名和表中的字段名不一样,如果将查询的结果封装到指定 pojo?三、模糊查询 like 语句该怎么写四、…...

Qt扩展-KDDockWidgets 简介及配置

Qt扩展-KDDockWidgets 简介及配置] 一、概述二、编译 KDDockWidgets 库1. Cmake Gui 中选择源文件和编译后的路径2. 点击Config,配置好编译器3. 点击Generate4. 在存放编译的文件夹输入如下命令开始编译 三、qmake 配置 一、概述 kdockwidgets是一个由KDAB组织编写…...

Vue3搭配Element Plus 实现候选搜索框效果

直接上代码 <el-col :span"14" class"ipt-col"><el-input v-model"projectName" class"w-50 m-2" input"inputChange" focus"inputFocusFn" blur"inputBlurFn" placeholder"请输入项目名…...

进程间的通信方式

文章目录 1.简单介绍2.管道2.1管道的基础概念**管道读写规则**:**管道特点** 2.2匿名管道匿名管道父子进程间通信的经典案例&#xff1a; 2.3命名管道基本概念:命名管道的创建&#xff1a;命名管道的打开规则&#xff1a;匿名管道与普通管道的区别**例子&#xff1a;用命名管道…...

分类预测 | Matlab实现基于MIC-BP-Adaboost最大互信息系数数据特征选择算法结合Adaboost-BP神经网络的数据分类预测

分类预测 | Matlab实现基于MIC-BP-Adaboost最大互信息系数数据特征选择算法结合Adaboost-BP神经网络的数据分类预测 目录 分类预测 | Matlab实现基于MIC-BP-Adaboost最大互信息系数数据特征选择算法结合Adaboost-BP神经网络的数据分类预测效果一览基本介绍研究内容程序设计参考…...

phpcms v9对联广告关闭左侧广告

修改目录“\caches\poster_js”下的文件“53.js”&#xff0c;修改函数“showADContent()” 将代码&#xff1a; str "<div idPCMSAD_"this.PosID"_"i" style"align_b":"x"px;top:"y"px;width:"this.Width&…...

7.2.4 【MySQL】匹配范围值

回头看我们 idx_name_birthday_phone_number 索引的 B 树示意图&#xff0c;所有记录都是按照索引列的值从小到大的顺序排好序的&#xff0c;所以这极大的方便我们查找索引列的值在某个范围内的记录。比方说下边这个查询语句&#xff1a; SELECT * FROM person_info WHERE nam…...

1400*C. No Prime Differences(找规律数学)

解析&#xff1a; 由于 1 不是质数&#xff0c;所以我们令每一行的数都相差 1 对于行间&#xff0c;分为 n、m之中有存在偶数和都为奇数两种情况。 如果n、m存在偶数&#xff0c;假设m为偶数。 如果都为奇数&#xff0c;则&#xff1a; #include<bits/stdc.h> using name…...

Python基础之装饰器

文章目录 1 装饰器1.1 定义1.2 使用示例1.2.1 使用类中实例装饰器1.2.2 使用类方法装饰器1.2.3 使用类中静态装饰器1.2.4 使用类中普通装饰器 1.3 内部装饰器1.3.1 property 2 常用装饰器2.1 timer:测量执行时间2.2 memoize:缓存结果2.3 validate_input:数据验证2.4 log_result…...

IDEA设置Maven 镜像

第一步&#xff1a;右键项目&#xff0c;选择Maven->Create ‘settings.xml’ 已经存在的话是Open ‘settings.xml’&#xff1a; 第二步&#xff1a;在settings.xml文件中增加阿里云镜像地址&#xff0c;代码如下&#xff1a; <?xml version"1.0" encodin…...

项目评定等级L1、L2、L3、L4

软件项目评定等级的数量可以因不同的评定体系和标准而异。一般情况下&#xff0c;项目评定等级通常按照项目的规模、复杂性和风险等因素来划分&#xff0c;可以有多个等级&#xff0c;常见的包括&#xff1a; L1&#xff08;Level 1&#xff09;&#xff1a;通常表示较小规模、…...

一个基于SpringBoot+Vue前后端分离学生宿舍管理系统详细设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

工作相关----《配置bond》

进入到/etc/sysconfig/network-scripts&#xff0c;按照要求配置主备关系 vim ifcfg-bond0&#xff0c;编写主要内容如下&#xff1a; /*mode1 表示主备份策略&#xff0c;miimon100 系统每100毫秒监测一次链路连接状态&#xff0c; 如果有一条线路不通就转入另一条线路*/ BOND…...

Nacos、ZooKeeper和Dubbo的区别

Nacos、ZooKeeper和Dubbo是三个不同的分布式系统组件&#xff0c;它们之间有以下几点区别&#xff1a; 功能定位&#xff1a;Nacos主要提供服务发现、配置管理和服务治理等功能&#xff0c;而ZooKeeper主要是分布式协调服务&#xff0c;提供了分布式锁、分布式队列等原语&#…...

刷一下算法

记录下自己的思路与能理解的解法,可能并不是最优解法,不定期持续更新~ 1.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容…...

three.js——GUI的使用

GUI的使用 效果图1、导入gui2、创建一个GUI对象3、通过gui调用方法 name:按钮的名称 效果图 1、导入gui // 导入ligui import { GUI } from three/examples/jsm/libs/lil-gui.module.min.js2、创建一个GUI对象 const gui new GUI()3、通过gui调用方法 name:按钮的名称 // 创…...

Pixel Fashion Atelier保姆级教程:从INSERT COIN按钮到像素粒子物理引擎解析

Pixel Fashion Atelier保姆级教程&#xff1a;从INSERT COIN按钮到像素粒子物理引擎解析 1. 像素时装锻造坊简介 像素时装锻造坊是一款融合了复古游戏美学与现代AI技术的图像生成工具。它基于Stable Diffusion和Anything-v5模型构建&#xff0c;专为时尚设计和像素艺术创作而…...

智能提取视频转文档:自动化工具提升内容处理效率

智能提取视频转文档&#xff1a;自动化工具提升内容处理效率 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 在数字化学习与办公场景中&#xff0c;视频内容提取已成为知识管理的重要…...

航空装备制造数字孪生怎么做?为什么推荐用Catia+CIMPro孪大师?

今天&#xff0c;我们不谈虚头巴脑的概念&#xff0c;直接聚焦航空装备制造这个硬骨头&#xff0c;聊聊数字孪生到底该怎么做&#xff0c;以及为什么在当前的工具链中&#xff0c;“CatiaCIMPro孪大师”这对组合值得你特别关注。什么类型的行业模型&#xff0c;必须选择Catia&a…...

SDXL-Turbo在虚拟现实中的应用:实时环境生成技术

SDXL-Turbo在虚拟现实中的应用&#xff1a;实时环境生成技术 想象一下&#xff0c;在虚拟世界中每走一步&#xff0c;周围的景色就随之变化——茂密的森林在你眼前生长&#xff0c;古老的城堡在远处拔地而起&#xff0c;这一切都发生在眨眼之间。这不是魔法&#xff0c;而是SDX…...

lingbot-depth-pretrain-vitl-14惊艳效果:RGB输入→INFERNO伪彩深度图动态生成演示

lingbot-depth-pretrain-vitl-14惊艳效果&#xff1a;RGB输入→INFERNO伪彩深度图动态生成演示 1. 模型概述 LingBot-Depth (Pretrained ViT-L/14) 是一款基于 DINOv2 ViT-Large/14 编码器的深度估计与补全模型&#xff0c;拥有 321M 参数。该模型采用创新的 Masked Depth Mo…...

SDMatte在电商场景落地:商品主图自动去背景+透明PNG生成完整工作流

SDMatte在电商场景落地&#xff1a;商品主图自动去背景透明PNG生成完整工作流 1. 电商场景中的图像处理痛点 在电商运营中&#xff0c;商品主图的质量直接影响转化率。传统处理方式面临三大难题&#xff1a; 人工成本高&#xff1a;专业设计师处理一张图平均耗时15-30分钟边…...

从sipML5到现代框架:FreeSWITCH WebRTC客户端升级指南与选型建议

从sipML5到现代框架&#xff1a;FreeSWITCH WebRTC客户端升级指南与选型建议 如果你正在维护一个基于sipML5的FreeSWITCH WebRTC前端项目&#xff0c;可能已经感受到了技术债的压力——浏览器兼容性问题频发、功能扩展困难、社区支持几乎为零。这不是你的错&#xff0c;sipML5作…...

基于springboot框架的校园外卖管理系统的设计与实现

目录需求分析与功能规划技术选型与架构设计数据库设计与建模核心功能实现系统集成与测试部署与运维优化与扩展项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作需求分析与功能规划 明确校园外卖管理系统的核心需求&#xff0c;包…...

Ostrakon-VL-8B模型剪枝与量化入门:降低部署资源消耗

Ostrakon-VL-8B模型剪枝与量化入门&#xff1a;降低部署资源消耗 想让大模型在普通电脑上跑起来&#xff1f;这听起来像是个遥不可及的梦想&#xff0c;尤其是对于Ostrakon-VL-8B这种参数规模不小的视觉语言模型。它功能强大&#xff0c;但随之而来的就是对GPU显存和算力的高要…...

LFM2.5-1.2B-Thinking部署教程:3步实现Python爬虫数据智能处理

LFM2.5-1.2B-Thinking部署教程&#xff1a;3步实现Python爬虫数据智能处理 1. 引言 你是不是经常遇到这样的问题&#xff1a;爬虫抓取了一大堆数据&#xff0c;但面对杂乱无章的文本内容却无从下手&#xff1f;手动整理不仅耗时耗力&#xff0c;还容易出错。现在&#xff0c;…...