verander de tabel door UNIQUE
. toe te voegen beperking
ALTER TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
maar u kunt dit doen als de tabel employee
is leeg.
of als er records waren, probeer dan IGNORE
toe te voegen
ALTER IGNORE TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
UPDATE 1
Er is iets misgegaan, denk ik. U hoeft alleen een unieke beperking toe te voegen aan kolom ename
sinds eno
zal altijd uniek zijn vanwege AUTO_INCREMENT
.
Om een unieke beperking toe te voegen, moet je wat opschonen op je tafel.
De onderstaande query's verwijderen enkele dubbele records en wijzigen de tabel door een unieke beperking toe te voegen aan kolom ename
.
DELETE a
FROM Employee a
LEFT JOIN
(
SELECT ename, MIN(eno) minEno
FROM Employee
GROUP BY ename
) b ON a.eno = b.minEno
WHERE b.minEno IS NULL;
ALTER TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename);
Hier is een volledige demonstratie