Jak skonfigurować wiele pól jako klucz podstawowy w MySQL?

23

Mam stolik z polami

Numer identyfikacyjny pracownika

bla bla

blahblah2

.....

RecordMonth

RecodrdYear

  • więc każdy pracownik powinien mieć pasującą pozycję tylko na miesiąc, rok, Emp #. Jak skonfigurować stół.

Jak skonfigurować tabelę, aby identyfikator pracownika mógł być aktualizowany raz w miesiącu, ale nigdy nie może mieć dwóch wpisów dla pasującego miesiąca i roku?

LOSTinDB
źródło

Odpowiedzi:

43

Użyj złożonego klucza podstawowego :

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

A jeśli twoja tabela już istnieje, upuść stary klucz podstawowy:

ALTER TABLE yourtable
DROP PRIMARY KEY;

I odtwórz to:

ALTER TABLE yourtable
ADD PRIMARY KEY (employeeid, recordmonth, recodrdyear);
Maxime Fouilleul
źródło