Che ne dici di controllare ciò che va nella tabella in modo da memorizzare sempre il numero più piccolo nella prima colonna e quello più grande nella seconda? Finché 'significa' la stessa cosa ovviamente. Probabilmente è meno costoso farlo prima ancora che arrivi al database.
Se ciò è impossibile, puoi salvare i campi così come sono ma farli duplicare in ordine numerico in due ALTRI campi, su cui creeresti la chiave primaria (pseudo-codice):
COLUMN A : 2
COLUMN B : 1
COLUMN A_PK : 1 ( if new.a < new.b then new.a else new.b )
COLUMN B_PK : 2 ( if new.b > new.a then new.b else new.a )
Questo potrebbe essere fatto facilmente con un trigger (come nella risposta di Ronald) o gestito più in alto, nell'applicazione.