Bagaimana cara mengatur beberapa bidang sebagai kunci utama di MySQL?

23

Saya punya meja dengan bidang

Identitas pegawai

blahblah

blahblah2

.....

RecordMonth

RecodrdYear

  • jadi setiap karyawan hanya boleh memiliki entri yang cocok untuk satu bulan, tahun, Emp #. Bagaimana cara mengatur meja.

Jadi, bagaimana cara mengatur tabel sehingga EmployeeID dapat diperbarui sebulan sekali tetapi tidak pernah memiliki dua entri untuk bulan dan tahun yang cocok?

LOSTinDB
sumber

Jawaban:

43

Gunakan kunci utama majemuk :

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

Dan jika meja Anda sudah ada, jatuhkan kunci utama yang lama:

ALTER TABLE yourtable
DROP PRIMARY KEY;

Dan membuatnya kembali:

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