MySQL에서 여러 필드를 기본 키로 설정하는 방법은 무엇입니까?


23

필드가있는 테이블이 있습니다

직원 ID

이러쿵 저러쿵

blahblah2

.....

RecordMonth

기록 연도

  • 따라서 각 직원은 한 달, 년, Emp #에 대해서만 일치하는 항목을 가져야합니다. 테이블을 어떻게 설정합니까?

그렇다면 EmployeeID를 한 달에 한 번 업데이트 할 수 있지만 일치하는 월과 연도에 대해 두 개의 항목을 가질 수 없도록 테이블을 어떻게 설정합니까?

답변:


43

복합 기본 키를 사용하십시오 .

CREATE TABLE yourtable 
  ( 
     employeeid  INT, 
     blahblah    VARCHAR(255), 
     blahblah2   VARCHAR(255), 
     recordmonth DATE, 
     recodrdyear DATE, 
     PRIMARY KEY (employeeid, recordmonth, recodrdyear) 
  ) 

그리고 테이블이 이미 존재하면 이전 기본 키를 삭제하십시오.

ALTER TABLE yourtable
DROP PRIMARY KEY;

그리고 그것을 다시 만드십시오 :

ALTER TABLE yourtable
ADD PRIMARY KEY (employeeid, recordmonth, recodrdyear);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.