Como configurar vários campos como chave primária no MySQL?

23

Eu tenho uma mesa com campos

ID do Empregado

blahblah

blahblah2

.....

RecordMonth

RecodrdYear

  • portanto, cada funcionário deve ter apenas uma entrada correspondente por um mês, ano, nº emp. Como faço para configurar uma mesa.

Então, como configuro a tabela para que o CódigoDoEmpregado possa ser atualizado uma vez por mês, mas nunca possa ter duas entradas para um mês e ano correspondentes?

LOSTinDB
fonte

Respostas:

43

Use uma chave primária composta :

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

E se sua tabela já existir, solte a chave primária antiga:

ALTER TABLE yourtable
DROP PRIMARY KEY;

E recrie-o:

ALTER TABLE yourtable
ADD PRIMARY KEY (employeeid, recordmonth, recodrdyear);
Maxime Fouilleul
fonte