postgreSQL"重复键违反唯一约束"是什么原因?

我在nestjs+typeorm+postgreSQL,向数据库添加数据时会报这个错:
[Nest] 13480 - 2022/11/05 15:24:23 ERROR [ExceptionsHandler] 重复键违反唯一约束"PK_40808690eb7b915046558c0f81b"
我不明白唯一约束是指的什么。

我在页面上进行提交时会报500,但是多点几次却可以提交并且添加数据?
有时候却不会报错,我不知道是什么原因。另外我的数据库的数据是服务器的数据复制粘贴的,我尝试过转储sql文件并运行,但是会直接全部错误而导致运行失败。

我用Navicat看服务器的数据库的表能够看到行。
image.png

但是复制到本地的数据库的表却显示-1
image.png

不知道是不是这个原因?

阅读 3.4k
4 个回答

因为你的表创建了唯一性约束,所以你肯定是重复提交记录了导致这个错误,这个错误只是插入的时候报错,并不是读取错误,所以你读取数据肯定没有问题。

你需要检查的是为什么会重复提交记录,PK_40808690eb7b915046558c0f81b这个唯一性约束限定的是什么?这个你自己看下表结构就清楚了

查看表结构, 看看唯一键是怎么设计的.

新手上路,请多包涵

猜测原因是,你的主键设置成了自增,然后自增序列的起始数值又被你手动写入到表里了。

直接 先把索引和外键删除 插入数据后再重构 当然这只是在数据迁移初始化的时候会有用到

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏