MySQL'de birden çok alanı birincil anahtar olarak nasıl ayarlayabilirim?


23

Alanlar içeren bir masam var

Çalışan kimliği

blahblah

blahblah2

.....

RecordMonth

RecodrdYear

  • bu nedenle her çalışanın yalnızca bir ay, yıl, Emp # için eşleşen bir girişi olmalıdır. Bir tabloyu nasıl ayarlarım.

Peki tabloyu, ÇalışanKimliği'nin ayda bir kez güncellenebileceği, ancak eşleşen ay ve yıl için asla iki girişi olmayacak şekilde nasıl ayarlayabilirim?

Yanıtlar:


43

Bileşik birincil anahtar kullanın :

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

Tablonuz zaten varsa, eski birincil anahtarı bırakın:

ALTER TABLE yourtable
DROP PRIMARY KEY;

Ve yeniden oluşturun:

ALTER TABLE yourtable
ADD PRIMARY KEY (employeeid, recordmonth, recodrdyear);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.