2014-07-19 2 views
0

이름, 나이, 주소가 3 개인 컬럼이 있습니다.
이름과 나이를 주소를 나타내는 복합 키로 사용하고 싶습니다.MySQL : 복합 키 참조

select * from usertable where (name,age)=('somename',someage); 

하지만 난 같은 것을 할 싶습니다 :

Create table usertable (
    name varchar(100) not null, 
    age int not null, 
    address varchar(100) not null, 
    constraint addresskey PRIMARY KEY(name,age) 
); 

이 작동 내가이 작업을 수행 할 때

select * from usertable where addresskey=('somename',someage); 

나는 오류가 발생합니다.

+0

사망 한 경우이 계획은 정상적으로 작동합니다. – Strawberry

+0

@Strawberry, 단순한 예입니다. – stumped

+3

원하는 것을 할 수 없습니다. 열의 이름을 명시 적으로 지정해야합니다. –

답변

0

이렇게하면 주소 키의 기본 키를 넣을 수 있습니다. 1) 이름과 나이를 기본 키로 지정하는 것은 좋지 않습니다. 중복이 있어야하기 때문입니다. 2) addresskey라는 필드가 없기 때문에 쿼리가 잘못되어 쿼리가 발생하며 varchar와 2 필드를 비교합니다.

그래서 필드 주소 키를 auto_increment 필드로 추가 할 수 있습니다 (그러나 동일한 주소를 관리하고 작동 방식을 결정할 때주의). 그러면 addresskey 값을 사용하여 선택할 수 있습니다.