PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

django.db.utils.IntegrityError:डुप्लिकेट कुंजी मान अद्वितीय बाधा का उल्लंघन करता है Spirit_category_category_pkey

बहुत सारे डिबगिंग के बाद, मुझे आखिरकार इसका समाधान मिल गया। इसका कारण यह है कि मैं दो अन्य categories को सम्मिलित करने का प्रयास कर रहा था निर्दिष्ट आईडी . के साथ 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. भूले हुए असाइनमेंट ऑपरेटर =और सामान्य :=

  2. Postgres/psycopg2 - स्ट्रिंग्स की सरणी सम्मिलित करना

  3. मैं लिनक्स में मैक ओएस के समान पोस्टग्रेज कॉलेशन व्यवहार कैसे प्राप्त कर सकता हूं?

  4. PostgreSQL का उपयोग करके DBeaver पर ऑटो इंक्रीमेंटिंग/सीरियल आईडी कॉलम कैसे बनाएं?

  5. ऑपरेटर की तरह पूर्ण पाठ खोज को पोस्टग्रेज करता है