sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan opretter man et unikt indeks, hvor kolonnerækkefølgen ikke tages i betragtning (sæt?)

Du kan oprette et indeks på et udtryk, i dette tilfælde least() og greatest() :

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

Bemærk:der er en lille underlighed, hvis kolonnerne tillader NULL værdier. I så fald ville den samme værdi kun være tilladt én gang, uanset hvilken kolonne den er i. Dette kan rettes med et mere kompliceret udtryk, hvis det faktisk er et problem.




  1. Hvordan installeres oracle instantclient og pdo_oci på ubuntu-maskine?

  2. SQLite UNIK begrænsning

  3. Implementer sidesøgning (spring over / tag) funktionalitet med denne forespørgsel

  4. Integrer Firebase med PHP til realtidskommunikation