如何解决在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 举报,一经查实,本站将立刻删除。