MySQLで主キーとして複数のフィールドを設定する方法は?


22

フィールドを持つテーブルがあります

従業員ID

ブラブラ

blahblah2

.....

RecordMonth

RecodrdYear

  • そのため、各従業員には、月、年、Emp#のエントリのみが一致する必要があります。テーブルを設定するにはどうすればよいですか。

それでは、月に1回EmployeeIDを更新できるが、一致する月と年に2つのエントリを持たないようにテーブルを設定するにはどうすればよいですか?

回答:


42

複合主キーを使用します

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.