通过添加
UNIQUE约束来更改表
ALTER TABLE employee ADD ConSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
但是如果表
employee为空,则可以执行此操作。
或者,如果记录存在,请尝试添加
IGNORE
ALTER IGNORE TABLE employee ADD ConSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
更新1
我猜可能出了点问题。您只需要在列上添加唯一约束,
ename因为
eno由于,它始终是唯一的
AUTO_INCREMENT。
为了添加唯一约束,您需要对表进行一些清理。
下面的查询删除一些重复的记录,并通过对column添加唯一约束来更改表
ename。
DELETe aFROM Employee a LEFT JOIN ( SELECt ename, MIN(eno) minEno FROM Employee GROUP BY ename ) b ON a.eno = b.minEnoWHERe b.minEno IS NULL;ALTER TABLE employee ADD ConSTRAINT emp_unique UNIQUE (ename);
这是一个完整的示范
- SQLFiddle演示



