2009-06-29 8 views
7

필자는 테이블의 복합 요소가 고유하다는 것을 확인하고자하는 상황에 처했습니다. 예를 들어 :MySQL에서 복합성을 어떻게 적용 할 수 있습니까?

Table (
    id char(36) primary key, 
    fieldA varChar(12) not null, 
    fieldB varChar(36) not null 
) 

나는 그들이 자주 변경하고 'ID가'시스템 전반에 걸쳐 참조로 사용되기 때문에 fieldA 및 fieldB는, 복합 기본 키 싶지 않아.

fieldA와 fieldB는 고유 한 것이 아니며 고유 한 조합이어야합니다. 예를 들어, {{1, Matt, Jones}, {2, David, Jones}, {3, Matt, Smith}}는 유효한 데이터이지만 {{1, Matt, Jones}, {2, Matt, Jones }} 되지 않을 것.

답변

7

이 테이블 정의에 UNIQUE 키를 추가

Table (
    id char(36) primary key, 
    fieldA varChar(12) not null, 
    fieldB varChar(36) not null, 
    UNIQUE fieldA_fieldB (fieldA, fieldB) 
) 
+0

난 그냥 설명서를 다시 한번 필요 분명히! 고맙습니다! –

11

당신은 두 개의 필드에 고유 키 제약 조건을 추가 할 수 있습니다

ALTER TABLE `table_name` ADD UNIQUE (
`fieldA`, 
`fieldB` 
); 
1
ALTER Table ADD UNIQUE (fieldA, fieldB); 
관련 문제