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

PostgreSQL:競合時にselectから挿入する際の問題

    誤解があると思います。 2つの列に対する一意の制約は、各列が一意であることを意味するのではなく、組み合わせ 2つの列のうちの1つは一意です。

    したがって、must_be_different prompt_input_valueの一意の制約とは異なります(そして弱い) およびcollect_project_id 。たとえば、3つの行がある場合

     collect_project_id | prompt_input_value
    --------------------+--------------------
                      1 | a
                      1 | b
                      2 | b
    

    これらは、単一列の一意の制約の両方と競合しますが、must_be_differentとも競合しません。 。

    根本的な問題は、INSERT ... ON CONFLICTを使用したいということだと思います。 複数の固有の制約があります。それはできません。 この質問 を参照してください 議論と潜在的な解決策のために。




    1. CakePHP3で複数のデータベースに接続する

    2. 本番環境でのPostgresクエリにより、ディスク読み取りI/Oが異常に高くなります

    3. 日付別のMySQL累積合計注​​文

    4. 第一正規形と姓名