加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 13:15:35 所属栏目:百科 来源:网络整理
导读:我的桌子是这样的 FROM TO DISTANCE ------ ---- ---------- A B 100 B C 100Z A 120 我需要向表中添加一个不允许插入的约束 B A 100或C B 100或A Z 120 我有一个PRIMARY KEY(从,到)和CONSTRAINT const_u UNIQUE(to,from)但它没有按预期工作. 编辑: 我也无
我的桌子是这样的

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

我需要向表中添加一个不允许插入的约束
B A 100或C B 100或A Z 120

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

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

解决方法

create unique index on the_table (least(from,to),greatest(from,to));

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读