U kunt dit doen met behulp van een index op uitdrukkingen:
create unique index unq_test_a_b on (test(least(a, b), greatest(a, b));
Ik denk niet dat de unique
beperking staat expressies toe (en heb momenteel geen handige Postgres om op te testen), maar dit is in wezen hetzelfde.