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

Jak stworzyć unikalny indeks, w którym kolejność kolumn nie będzie brana pod uwagę (ustawiona?)

Możesz utworzyć indeks na wyrażeniu, w tym przypadku least() i greatest() :

create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));

Uwaga:jest jedna drobna dziwność, jeśli kolumny zezwalają na NULL wartości. W takim przypadku ta sama wartość byłaby dozwolona tylko raz, niezależnie od kolumny, w której się znajduje. Można to naprawić za pomocą bardziej skomplikowanego wyrażenia, jeśli faktycznie stanowi to problem.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dodanie ograniczenia „jeden z dwóch nie zerowych” w postgresql

  2. Widoki list PostgreSQL

  3. Jak obracać logi PgBouncera w systemie Linux/Windows?

  4. Postgres:Jak zrobić klucze kompozytowe?

  5. Zapytanie o szerokość geograficzną PostgreSQL