Sie können dies mit einem Index für Ausdrücke tun:
create unique index unq_test_a_b on (test(least(a, b), greatest(a, b));
Ich glaube nicht, dass der unique
Constraint erlaubt Ausdrücke (und ich habe gerade kein geeignetes Postgres zum Testen), aber das ist im Wesentlichen dasselbe.