如何在 MySQL 中设置多个字段作为主键?

LOS*_*nDB 30 mysql primary-key

我有一个带字段的表

员工ID

废话

blahblah2

.....

记录月

记录年

  • 所以每个员工应该只有一个月、一年、Emp# 的匹配条目。怎么摆桌子。

那么如何设置表格,以便 EmployeeID 可以每月更新一次,但永远不能有两个匹配的月份和年份的条目?

Max*_*eul 54

使用复合主键

CREATE TABLE yourtable 
  ( 
     employeeid  INT, 
     blahblah    VARCHAR(255), 
     blahblah2   VARCHAR(255), 
     recordmonth DATE, 
     recordyear DATE, 
     PRIMARY KEY (employeeid, recordmonth, recordyear) 
  ) 
Run Code Online (Sandbox Code Playgroud)

如果您的表已经存在,请删除旧的主键:

ALTER TABLE yourtable
DROP PRIMARY KEY;
Run Code Online (Sandbox Code Playgroud)

并重新创建它:

ALTER TABLE yourtable
ADD PRIMARY KEY (employeeid, recordmonth, recordyear);
Run Code Online (Sandbox Code Playgroud)

  • 所以应该`ALTER TABLE yourtable MODIFY id INT NOT NULL; ` 首先。 (2认同)