django使用postgresql时提示主键冲突

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django使用postgresql时提示主键冲突相关的知识,希望对你有一定的参考价值。

在django使用postgresql数据库时,当你使用默认主键,但当你手动使用添加记录到相关数据库时(非insert操作,如使用navicate直接在表中复制粘贴记录),此时django在插入数据时,会提示主键冲突,这是因为postgresql的主键自增是建立在它内部机制工作的,你可以使用如下sql来获取或设置相关的自增ID序列:

    select nextval(‘表名_id_seq‘);             #此操作会获取当前基于表中最大ID,并会设置ID+1

    select currval(‘表名_id_seq‘);    # 此操作会获取当前表自增ID的序列号

    select setval(‘表名_id_seq‘, 3, true);  #此操作会修改此表自增ID的起始ID值

以上是关于django使用postgresql时提示主键冲突的主要内容,如果未能解决你的问题,请参考以下文章

sqoop从hive导入数据到mysql时出现主键冲突

如何获取Django view.py来请求选定的帖子信息,如主键?

我的 Django 模型中的一个字段已经存在于 PostgreSQL 数据库中

使用 Django ORM 中的列过滤器获取主键 ID

PostgreSQL使用MyBatis,insert时返回主键

Postgresql on conflict do update 设置当前值,原始值,当前值与原始值相加值