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

标签 sql oracle

我的 table 有点像

从到远
------ ---- ----------
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:您可以添加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)。

关于sql - Oracle SQL唯一约束A到B,B到A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15731227/

相关文章:

Mysql 日期范围不返回正确的范围

mysql - 是否需要主键?

c# - 需要以 C# 字符串数据类型 "as is"获取 Oracle RAW

php - 将 BLOB 插入 Oracle 时出错

java - 我如何才能及早访问 Oracle Java 更新,以便在这些更新公开时测试我的 RIA 并避免防火演习?

sql - 根据第一列合并CSV表行 - sqlite

sql - 触发删除有两个条件

SQL:替换为少量记录(mysql)

oracle - 了解 Oracle 数据库和 ODAC 安装

oracle - 在 Oracle 中使用索引反转字符串