文档章节

postgreSQL中的自增序列问题

黄裳23
 黄裳23
发布于 2016/09/23 17:49
字数 245
阅读 54
收藏 0

1. 一个表的ID是个自增序列。

2. 这个表上有一个插入数据的函数(存储过程)。业务中,ID可能会传入参数,也可能没有传入参数。

问题来了 :当用户Insert一条ID=2(传入参数ID的值)的数据后,序列的值却还是1。
当用户下一次不传ID时再insert,第一次没有问题,ID自动取序列值为1,第2次Insert就会抛错,冲突了嘛。这种case如果不解决,放到项目中,一言不合就抛这样的错,是不是很郁闷。

解决办法:
从存储过程入手,如果用户传入ID=2时,Insert完成后把序列的当前值改成用户指定的值2。下一次Insert时不传ID也不要紧,从3开始了嘛。

贴上一句关键SQL代码

PERFORM SETVAL(sequenceName, ID);

 

© 著作权归作者所有

黄裳23
粉丝 2
博文 53
码字总数 9420
作品 0
西安
高级程序员
私信 提问
将你的网站从MySQL改为PostgreSQL

原著:Nathan Matias 翻译:处处 我的站点最初是采用PHP驱动,由MySQL数据库支持的方案,这在当时是一个明智的方案。在2001年夏天,我将我的数据库换成了PostgreSQL(有时也简称为Postgres)。...

李昊
2012/07/14
3.4K
11
写一个“特殊”的查询构造器 - (七、DML 语句、事务)

查询语句 (DQL) 的构造功能开发完毕,我们再给查询构造器增加一些对 DML (Data Manipulation Language) 语句的支持,如简单的 insert、update、delete 操作。 insert 我们先回顾下 PDO 原生的...

MrQ被抢注了
2018/05/23
0
0
postgresql常用命令(持续更新中...)

查看表结构 psql里 查看所有库:l 查看所有表: dt 查看某个表的结构: d 表名 对应的MySQL命令: 查看有那些库可以:show databases ---postgreSQL是什么呢? show tables ---->postgreSQL是什...

块块
2012/11/29
0
2
postgresql 常用技术集

postgresql添加自增约束 alter table tablename alter column columnname set default nextval('seq_name'); 前提是你需要建一个seq_name序列 PostgreSQL的触发器函数如何调试? 自己解决了,......

liaolzy2
2014/12/19
0
0
Instagram架构的分片和ID设计

前言 每秒上传超过25张图和90个“喜欢”,在Instagram我们存了很多数据,为了确保把重要的数据都扔到内存里,达到快速响应用户的请求,我们已经开始把数据进行分片-换句话说,把数据放到更多...

swingcoder
2015/07/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
1
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
2
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部