sql >> データベース >  >> RDS >> PostgreSQL

django.db.utils.IntegrityError:重複するキー値が一意の制約に違反していますspirit_category_category_pkey

    たくさんのデバッグの後、私はついに解決策を見つけました。その理由は、別の2つの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で手動で 、またはIDを指定しないでください。つまり、次の行を削除します。

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

    djangoにidの管理を任せればいいと思います 、idを指定するのは良い考えではないかもしれません 新しいデータを挿入するときは自分で。



    1. php oracleclientoci8のインストールの何が問題になっていますか

    2. SQL GROUP BY:連続性の間隔?

    3. SQL Server NVARCHARと同等のPostgreSQLとは何ですか?

    4. SQLを使用して連続する日付範囲を検出する