无论顺序如何,对两列的唯一约束 - Oracle
Unique constraint on two columns regardless of order - Oracle
免责声明:我看过类似的问题,它是不同的。
我们必须创建一个航班 table,其中包含 'DEPART' 和 'ARRIVE' 条目(即 3 个长字符(从 LON 到 LAX 的航班)和距离,以及其他条目等。
主要约束是,无论顺序如何,DEPART 和 ARRIVE 对都应该是唯一的(方向无关紧要)。
我知道我可以做但我们不允许(所以不建议):
- 选中“出发”>“到达”,然后选中“唯一”
- 制作 DEPART 和 ARRIVE 主键(既不在一起也不单独,虽然它不会解决它)
- 从其他 table 引用它们,它们是键。
那么如何检查 table 中是否存在一对?我得说这不是用于工业任务,而是用于大学科目。我们使用 Oracle SQLDeveloper 来完成这项任务。
先感谢您!
问候。
Oracle 支持表达式索引,因此:
create index unq_t_from_to on t(least(from, to), greatest(from, to))
(当然,from
和to
是SQL中的关键词,所以不太适合作为列名。)
免责声明:我看过类似的问题,它是不同的。
我们必须创建一个航班 table,其中包含 'DEPART' 和 'ARRIVE' 条目(即 3 个长字符(从 LON 到 LAX 的航班)和距离,以及其他条目等。 主要约束是,无论顺序如何,DEPART 和 ARRIVE 对都应该是唯一的(方向无关紧要)。 我知道我可以做但我们不允许(所以不建议):
- 选中“出发”>“到达”,然后选中“唯一”
- 制作 DEPART 和 ARRIVE 主键(既不在一起也不单独,虽然它不会解决它)
- 从其他 table 引用它们,它们是键。
那么如何检查 table 中是否存在一对?我得说这不是用于工业任务,而是用于大学科目。我们使用 Oracle SQLDeveloper 来完成这项任务。 先感谢您! 问候。
Oracle 支持表达式索引,因此:
create index unq_t_from_to on t(least(from, to), greatest(from, to))
(当然,from
和to
是SQL中的关键词,所以不太适合作为列名。)