解决postgresql 自增id作为key重复的问题

啥也不说啦,看代码吧~

SELECT setval(‘data_tracking_au_sec_id_seq', (SELECT MAX(id) FROM data_tracking_au_sec)+1);

data_tracking_au_sec_id_seq:可以再DDL查看到

data_tracking_au_sec:表名

补充:【Postgresql】-主键自增,插入数据时提示违背主键唯一性

错误备忘录:

1.主键自增,插入数据时提示违背主键唯一性

报错原因是自增主键的序列值与当前主键的字段值不匹配,我们现在需要设置当前最大主键值为序列值,执行下面的语句

SELECT setval('pgsql_article_id_seq', 60000);

--将序列值设为60000,也可将其设为当前表的Id最大值Max(Id)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 在PostgreSQL中设置表中某列值自增或循环方式

    在postgresql中,设置已存在的某列(num)值自增,可以用以下方法: //将表tb按name排序,利用row_number() over()查询序号并将该列命名为rownum,创建新表tb1并将结果保存到该表中 create table tb1 as (select *, row_number() over(order by name) as rownum from tb); //根据两张表共同的字段name,将tb1中rownum对应值更新到tb中num中 update tb set

  • postgresql修改自增序列操作

    在 mysql 中,实现 id 自增的方式是依靠加一个 auto_increment 标志,而在 pgsql 中,id 自增是通过序列 SEQUENCE. 创建表时设置自增序列为: CREATE TABLE "config" ( "id" int4 NOT NULL DEFAULT nextval('config_id_seq'::regclass), ... }; 如果需要修改创建表之后的序列,如: ----删除前先解除 id 对该序列的依赖 ALTER TABL

  • postgresql 导入数据库表并重设自增属性的操作

    postgresql使用Navicat软件导出数据库表,在导入会数据库的操作. postgresql 的自增字段 是通过 序列 sequence来实现的. 1.先删除导出的数据库表中的自增属性 2.导入数据库表之后,需要创建序列. 注:一般序列名称由数据表名+主键字段+seq组成 (通常情况下主键字段即为自增字段),如下表名为cof_table_hot_analysis,主键字段为 id CREATE SEQUENCE cof_table_hot_analysis_id_seq START WI

  • 解决postgresql 自增id作为key重复的问题

    啥也不说啦,看代码吧~ SELECT setval('data_tracking_au_sec_id_seq', (SELECT MAX(id) FROM data_tracking_au_sec)+1); data_tracking_au_sec_id_seq:可以再DDL查看到 data_tracking_au_sec:表名 补充:[Postgresql]-主键自增,插入数据时提示违背主键唯一性 错误备忘录: 1.主键自增,插入数据时提示违背主键唯一性 报错原因是自增主键的序列值与当前主键的

  • MySQL的自增ID(主键) 用完了的解决方法

    在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值.一般情况下初始值都是从 0 开始,然后按照一定的步长增加(一般是自增 1).一般情况下,我们都是用int(11)来作为数据表的自增 ID,在 MySQL 中只要定义了这个数的字节长度,那么就会有上限. MySQL的自增ID(主键) 用完了,怎么办? 如果用 int unsigned (int,4个字节 ), 我们可以算下最大当前声明的自增ID最大是多少,由于这里定义的是 int unsigned,所以最大可以达到2的32幂

  • java8 toMap问题(key重复如何解决)

    目录 java8 toMap(key重复解决) Collectors.toMap的key重复 解决方案一 解决方案二 java8 toMap(key重复解决) 使用stream的toMap()函数时,当key重复,系统会报错相同的key不能形成一个map,那么需要解决这个问题 相同key的情况下,丢弃重复的只保留一个 相同key的情况下,把value变成list,形成Map(Object,List<Object>)的形式 1.当key重复,使用最后一个value为值 2.当key重复,使用li

  • mysql自增id超大问题的排查与解决

    引言 小A正在balabala写代码呢,DBA小B突然发来了一条消息,"快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在这样下去过不了多久主键就要超出范围了,插入就会失败,balabala......" 我记得没有这么多,最多1k多万,count了下,果然是1100万.原来运维是通过auto_increment那个值看的,就是说,表中有大量的删除插入操作,但是我大部分情况都是更新的,怎么会这样? 下面话不多说了,来一起看看详细的介绍吧 问题排查 这张表

  • MySQL表自增id溢出的故障复盘解决

    问题:MySQL某个表自增id溢出导致某业务block 背景: tokudb引擎的一个大表tb1,存放业务上的机审日志,每天有大量的写入, 并且由于历史原因,这张表是int signed 类型的,最大只能存 2147483647行记录 . 处理过程: 增加DBLE中间件代理,然后做range分区,将新数据写到新加的的一个分片上. 同时业务上修改连接将这个表tb1的连接方式改走DBLE. 但是业务上改完代码后,发现还有残余的部分insert into tb1的写请求被转发到了老的表上,且有些表被错

  • 利用mysql事务特性实现并发安全的自增ID示例

    项目中经常会用到自增id,比如uid,最简单的方法就是用直接用数据库提供的AUTO_INCREMENT,但是如果用户量非常大,几千万,几亿然后需要分表存储的时候呢,这种方案就搞不定了,所以最好有一个全局的自增ID的生成器,不管是否分表,都能从生成器中获取到全局自增的ID. 实现方法应该有很多,不过所有的方案都需要解决一个问题,就是保证在高并发的情景下,数据获取依然正确,每次获取的ID都不会重复. 这里我分享两种利用mysql的innodb的事务特性来实现的方案,一种是实现过了的,另一种没有试验过

  • mysql自增ID起始值修改方法

    在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法.通常的设置自增字段的方法:创建表格时添加: 复制代码 代码如下: create table table1(id int auto_increment primary key,...) 创建表格后添加: 复制代码 代码如下: alter table table1 add id int auto_increment primary key 自

  • 快速解决PostgreSQL中的Permission denied问题

    想开始学习SQL和Excel那本书,觉得自己亲手去输入才是正道.发现程序后续会用到窗口函数,可是我的mysql没有窗口函数,这本书所提供的数据脚本分别是MS SQL Sever和PostreSQL. 上午我先安装的sql sever,可是由于比较大且在安装时出现了一些小的问题(安装缓慢,服务启动不了).无奈选择了PostreSQL,体积小,安装顺利. 导入数据比较特别,先建一个表,然后把同名txt导入进去.一定要用unix方式的路径. copy这个语句先前在mysql上没有遇到过.学习下....

  • 线上MySQL的自增id用尽怎么办

    目录 表定义自增值id InnoDB系统自增row_id Xid Innodb trx_id InnoDB数据可见性的核心思想 thread_id 总结 MySQL的自增id都定义了初始值,然后不断加步长.虽然自然数没有上限,但定义了表示这个数的字节长度,计算机存储就有上限.比如,无符号整型(unsigned int)是4个字节,上限就是2^32 - 1.那自增id用完,会怎么样? 表定义自增值id 表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变. mysql> crea

  • Mysql数据库自增id、uuid与雪花id详解

    目录 概念介绍 三种主键 聚簇索引与非聚簇索引 自增id uuid 雪花id与应用 总结 概念介绍 三种主键 自增id :1 2 3 4 5…… uuid :UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符.通用唯一标识符的意思,可以以业务实际user id为主键 比如QQ号 手机号等 雪花id :相比UUID无序生成的id而言,雪花算法是有序的(有时间参数),而且都是由数字组成.雪花id最大为64位,

随机推荐