PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL:pewne problemy z wstawieniem z select przy konflikcie

Myślę, że zaszło nieporozumienie. Unikalne ograniczenie dwóch kolumn nie oznacza, że ​​każda z nich jest unikalna, ale że kombinacja z dwóch kolumn jest unikalny.

Więc twój must_be_different jest inny (i słabszy) niż unikalne ograniczenia w prompt_input_value i collect_project_id . Na przykład, jeśli masz trzy wiersze

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

spowodują konflikt z obydwoma jednokolumnowymi unikalnymi ograniczeniami, ale ani z must_be_different .

Myślę, że podstawowym problemem jest to, że chcesz użyć INSERT ... ON CONFLICT z wieloma unikalnymi ograniczeniami. Tego się nie da zrobić; zobacz to pytanie do dyskusji i potencjalnych rozwiązań.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. upuść db w postgresie

  2. Gorutyny zablokowały pulę połączeń

  3. Jak policzyć setof / liczbę kluczy JSON w postgresql?

  4. nierozpoznany parametr konfiguracyjny autocommit w PostgreSQL NodeJS

  5. Jak ustawić zmienną kontekstową dla użytkownika/połączenia?