Bạn có thể tạo chỉ mục trên một biểu thức, trong trường hợp này là least()
và greatest()
:
create unique index idx_obj1_obj2 on table(least(Object1, Object2), greatest(Object1, Object2));
Lưu ý:có một điều hơi kỳ lạ nếu các cột cho phép NULL
các giá trị. Trong trường hợp đó, cùng một giá trị sẽ chỉ được phép sử dụng một lần, bất kể nó nằm ở cột nào. Điều này có thể được khắc phục bằng một biểu thức phức tạp hơn, nếu nó thực sự là một vấn đề.