Oracle SQL唯一约束A到B,B到A

zea*_*eal 6 sql oracle

我的桌子是这样的

FROM   TO     DISTANCE              
------ ---- ---------- 
A      B    100  
B      C    100
Z      A    120

我需要一个约束添加到不会让表中插入 B A 100C B 100A Z 120

我有一个PRIMARY KEY (from, to),CONSTRAINT const_u UNIQUE (to, from)但它没有按预期工作.

编辑:我也不能强制插入字母顺序正确,因为我无法访问插入逻辑编辑#2:你能添加BA 50吗? - 不,你不能.从A到B或B到A应该只有一个唯一的距离,但不能同时进行.

a_h*_*ame 11

create unique index on the_table (least(from,to), greatest(from,to));
Run Code Online (Sandbox Code Playgroud)

如果(A,B,100)已经在表格中,将阻止添加(B,A,100).