2017-03-07 6 views
1

면책 조항 : 비슷한 질문을 읽었습니다.주문에 관계없이 두 개의 열에 고유 한 제한 조건 - Oracle

'DEPART'및 'ARRIVE'항목 (LON에서 LAX으로가는 비행)과 거리, 기타 항목 등 3 개의 긴 문자가있는 항공편 테이블을 만들어야합니다. 주요 제약 조건은 DEPART .과 (방향은 중요하지 않습니다) 쌍에 관계없이 순서의 고유해야합니다 내가 할 수있는 알고 무엇 에 도착하지만 우리는 허용되지 않습니다 (그렇게하지 않는 것이 좋습니다) : 도착 도착>

  • 체크 DEPART을 한 후 확인 UNIQUE
  • DEPART 및 ARRIVE 기본 키를 만듭니다 (해결할 수는 없지만 함께 사용하거나 단독으로 사용하지 마십시오)
  • 키가있는 다른 테이블에서 참조하십시오.

그럼 테이블에 쌍이 있는지 여부를 어떻게 확인할 수 있습니까? 나는 그것이 산업 과제가 아니라 대학 과제를위한 것이라고 말하고 싶다. 우리는 Oracle SQLDeveloper를 사용합니다. 미리 감사드립니다. 감사합니다.

답변

4

오라클은 그렇게 표현에 인덱스를 지원합니다

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

이 (가 열 이름에 매우 좋지 않다 그래서 물론, fromto는 SQL 키워드가 있습니다.)

+0

오, 나의 나쁜거야 편집하십시오 (실제 이름이 아님) –

+0

고마워요! 't (최소 (시작), 최대 (최대) (에서))에 고유 한 unq_t_from_to를 만듭니다. 이 해결책이었습니다. 혼자서 찾지 못했습니다. ty –

+0

** SUBQUESTION ** 나는 적어도 혼자서 노력했지만 여전히 효과가있다. 당신은 가장 적게/가장 위대한 것이 무엇인지 (그리고 어쨌든 그들은 어쨌든) 설명 할 수 있습니까? :) –