Как настроить несколько полей в качестве первичного ключа в MySQL?

23

У меня есть таблица с полями

EmployeeID

blahblah

blahblah2

.....

RecordMonth

RecodrdYear

  • поэтому у каждого сотрудника должна быть соответствующая запись только на месяц, год, номер Emp. Как мне настроить стол.

Итак, как мне настроить таблицу так, чтобы EmployeeID мог обновляться один раз в месяц, но никогда не иметь двух записей для соответствующего месяца и года?

LOSTinDB
источник

Ответы:

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);
Максим Фуйе
источник