我有一个带有字段的表

EmployeeID

blahblah


......

RecordMonth

RecordYear


,所以每个员工只应有一个匹配的条目来输入月份,年份和Emp#。如何设置表格。

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

#1 楼

使用复合主键:

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


如果表已经存在,则删除旧主键:

ALTER TABLE yourtable
DROP PRIMARY KEY;


并重新创建它:

ALTER TABLE yourtable
ADD PRIMARY KEY (employeeid, recordmonth, recordyear);


评论


嗨,我的数据库不允许我删除带有错误“错误的表定义;只能有一个自动列,并且必须将其定义为键')

–德米特里·格兰金(Dmitriy Grankin)
20-5-30在7:07



所以应该ALTER TABLE yourtable MODIFY ID INT NOT NULL;第一。

–德米特里·格兰金(Dmitriy Grankin)
20-5-30在7:12