sql >> Database >  >> RDS >> PostgreSQL

Hoe maak je een unieke index waarbij geen rekening wordt gehouden met de kolomvolgorde (ingesteld?)

U kunt een index maken voor een uitdrukking, in dit geval least() en greatest() :

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

Opmerking:er is een kleine vreemdheid als de kolommen NULL toestaan waarden. In dat geval zou dezelfde waarde slechts één keer worden toegestaan, ongeacht de kolom waarin deze zich bevindt. Dit kan worden opgelost met een meer gecompliceerde uitdrukking, als het daadwerkelijk een probleem is.




  1. Slaapstand en database met meerdere tenants met behulp van schema's in PostgreSQL

  2. Een API aanroepen vanuit de opgeslagen procedure van SQL Server

  3. PostgreSQL-kolommen wijzigen die in weergaven worden gebruikt

  4. dbms_lob.getlength() vs. length() om de blob-grootte in oracle te vinden