PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

django.db.utils.IntegrityError:дублираната стойност на ключ нарушава уникалното ограничение spirit_category_category_pkey

След много отстраняване на грешки най-накрая намерих решението. Причината е, че се опитвах да вмъкна още две categories с посоченid s, което би накарало postgresql да спре да увеличава last_value на относителната sequence . Точно както следва:

0002_auto_20150728_0442.py

if not Category.objects.filter(pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK).exists():
    Category.objects.create(
        pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK,
        title="Private",
        slug="private",
        is_private=True
    )

if not Category.objects.filter(pk=settings.ST_UNCATEGORIZED_CATEGORY_PK).exists():
    Category.objects.create(
        pk=settings.ST_UNCATEGORIZED_CATEGORY_PK,
        title="Uncategorized",
        slug="uncategorized"
    )

Начинът да поправите това е прост, или променете last_value ръчно в django , или просто не посочвайте идентификатора, т.е. премахнете следните редове:

....
pk=settings.ST_TOPIC_PRIVATE_CATEGORY_PK,
....
pk=settings.ST_UNCATEGORIZED_CATEGORY_PK,
....

Предполагам, че ако позволите на django да поеме задачата да управлява id , може да не е добра идея да посочите id себе си, когато въвеждате нови данни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да изпълним .sql скрипт на heroku?

  2. (psycopg2.DataError) невалиден входен синтаксис за цяло число:импортиране от csv файл?

  3. Експортиране на резултати от заявка от BigQuery към Postgres

  4. Как да мигрираме съществуваща Postgres таблица към разделена таблица възможно най-прозрачно?

  5. Как мога да се присъединя с получена таблица?