微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在PostgrSQL中使用主键

如何解决在PostgrSQL中使用主键

我目前有一张桌子:

userID | color | quantity
-------------------------

其中userID是主键。我的问题是,当我尝试插入数据库(已经具有相同ID的一项)时,出现错误消息:pq: duplicate key value violates unique constraint我正在使用带有lib / pq包的Go插入。 我不确定我对于使用PK的目的是否有错误的想法,或者我不知道我需要制作哪种类型的桌子

解决方法

主键是唯一标识表中每一行的键,因此必须是唯一的。如果您需要在表中使用相同的userID来容纳更多行,则userID不能成为主键。

当您指定一列(或一组列)作为主键时,PostgreSQL将在其上施加唯一性约束,因此表中的两行都不会具有该列的相同内容-这就是为什么您会看到约束违反错误的原因。

您可以通过添加另一个ID列来解决此问题,该ID列将对每行具有唯一的值(例如,自动递增的序列),并使其成为主键而不是userID

Here是Postgres中有关主键的详细教程,可让您更好地了解主键的用法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。