首页 > 其他分享 >postgres 错误duplicate key value violates unique constraint 解决方案

postgres 错误duplicate key value violates unique constraint 解决方案

时间:2023-05-18 17:23:25浏览次数:49  
标签:自增 word postgres constraint value 序列 bank2 unique id

出错代码

tortoise.exceptions.IntegrityError: duplicate key value violates unique constraint "word_bank2_pkey"

原文连接

分析bug

postgres 出现该问题着实没仔细看数据表序列ID,、出现的原因是: 以word_bank2表为列子.id是唯一的且id在数据库中是自增的. 而现在数据库中存在的id的值大于了id现在应该自增的值.比如现在数据库word_bank2表中现在的id是100,而id自增才增长到95.那你在添加一条数据的时候,id是96,id为96的这条数据已经有了,所以id就违反了唯一性约束

解决方案

1.先要查看这张表中已经存在的id的最大值是多少. 直接在数据库连接工具中输入sql查询.

Select max(id) from word_bank2;

2.查询这张表的id的自增序列是多少.

Select nextval('word_bank2_id_seq');

3 . 如果这张表的id的最大值大于 id的自增序列的值.那就证明添加的时候会出现id被占用,而导致id违反唯一性约束的问题. 我们只需要重新给id的自增序列赋值,赋一个大于等于现在表中id的最大值就可以了.

SELECT setval('word_bank2_id_seq', xxx);

4.在重新查询一下,id的自增序列的值是多少,如果和上一步我们设置的值一样的话,就没有问题了.

Select nextval('word_bank2_id_seq');

标签:自增,word,postgres,constraint,value,序列,bank2,unique,id
From: https://www.cnblogs.com/safe-rabbit/p/17412558.html

相关文章

  • 字典遍历 dict1.values,dict1.keys,dict1.items
    ''''''dict1={'K1':'Aa','K2':'Bb','K3':'Cc'}forkindict1.keys():print(k,end='\t')print()forvindict1.values():print(v,end=&#......
  • 数据分析缺失值处理(Missing Values)——删除法、填充法、插值法
    缺失值指数据集中某些变量的值有缺少的情况,缺失值也被称为NA(notavailable)值。在pandas里使用浮点值NaN(NotaNumber)表示浮点数和非浮点数中的缺失值,用NaT表示时间序列中的缺失值,此外python内置的None值也会被当作是缺失值。需要注意的是,有些缺失值也会以其他形式出现,比如说用NULL......
  • postgresql 自动创建分区表
    PostgreSQL中通过继承,可以支持基本的表分区功能,比如按时间,每月创建一个表分区,数据记录到对应分区中。按照官方文档的操作,创建子表和index、修改trigger等工作都必须DBA定期去手动执行,不能实现自动化,非常不方便。尝试着通过在plpgsql代码中使用动态SQL,将大表分区的运维操作实现......
  • PostgreSQL一站式插件推荐 -- pg_enterprise_views
      近日发现PG官方插件列表中新收录了一款插件pg_enterprise_views,因为官方已经数年未添新的插件了很是新奇,找了台设备测试过后果断上了生产,得空分享给大家。  该插件提供了数十张系统表及一个GUI工具,用以监控从操作系统到数据库方方面面的性能情况,并支持对任意时段历史......
  • Postgresql 扩展函数记录
    启用函数createextensiontablefunc;--tablefunc扩展模块包含一系列返回记录表的函数。createextension"uuid-ossp";--uuid扩展函数createextensionifnotexists"uuid-ossp"; 卸载函数dropextensiontablefunc;dropextension"uuid-ossp";......
  • python 操作 PostgreSQL 数据库,线程并行修改 5w 条数据,性能优化
    python操作PostgreSQL数据库,线程并行修改5w条数据,性能优化110 娃哈哈店长的个人博客 /  433 /  0 / 创建于 3年前  获取新xls表中的所有数据并整理为列表形式返回其实修改的代码量不大,但是要考虑保留之前我们用的函数和方法还要继续能使用。excel2......
  • NetBackup 10.2 新功能介绍:PostgreSQL 和 MySQL 自动化恢复达成
    VeritasNetBackup10.2(Unix,Linux,Windows)下载-一流的企业备份和恢复原文来自:VERITAS中文社区2023-04-27在执行恢复任务时,手动提取、更新数据库和实例并将其附加到PostgreSQL和MySQL是常规操作。而在最新的NetBackup10.2版本中,执行恢复已不再需要上述手动流程......
  • Centos7下搭建PostgreSQL关系型数据库
     ALTERUSERpostgresENCRYPTEDPASSWORD'postgres123';   10、开放端口firewall-cmd--query-port=5432/tcpfirewall-cmd--add-port=5432/tcpfirewall-cmd--add-port=5432/tcp--zone=public--permanent 11、重新启动systemctlrestartpostgresql-11 ......
  • Postgresql安装备份注意事项
    1.目标数据库准备     2.口令形式还原数据库主要步骤第一步:需要建一个空白的【hyl_jidian】的数据库;第二步:找到PG库安装位置,进入bin目录,默认位置:C:\ProgramFiles\PostgreSQL\13\bin第三步:执行【psql-hlocalhost-p5432-Upostgres-dhyl_jidian<C:\hyl_jidian......
  • org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit
    或者在POM中加入<plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.6.0</version><configuration><......