无论顺序如何,对两列的唯一约束 - Oracle

时间:2017-03-07 23:03:32

标签: sql oracle oracle10g oracle-sqldeveloper

免责声明:我读过类似的问题,不同。

我们必须使用' DEPART'创建一个航班表。和' ARRIVE'条目(3个长字符(从LON飞往洛杉矶国际机场)和距离,以及其他条目等。 主要的限制是,DEPART和ARRIVE对应该是唯一的,无论它们的顺序如何(方向无关紧要)。 我知道我可以做但我们不被允许(所以不建议):

  • 检查DEPART> ARRIVE然后检查UNIQUE
  • 制作DEPART和ARRIVE主键(既不在一起也不能单独使用,但不能解决)
  • 从其他表中引用它们,它们是键。

那么如何检查表中是否存在一对?我得说这不是一项工业任务,而是一项大学课程。我们使用Oracle SQLDeveloper完成任务。 先感谢您! 问候。

1 个答案:

答案 0 :(得分:4)

Oracle支持表达式索引,因此:

create index unq_t_from_to on t(least(from, to), greatest(from, to))

(当然,fromto是SQL中的关键字,因此它们对列名称不是很好。)