ändra tabellen genom att lägga till UNIQUE
begränsning
ALTER TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
men du kan göra detta om tabellen employee
är tom.
eller om poster fanns, försök att lägga till IGNORE
ALTER IGNORE TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
UPPDATERING 1
Något gick fel, antar jag. Du behöver bara lägga till en unik begränsning i kolumnen ename
sedan eno
kommer alltid att vara unik på grund av AUTO_INCREMENT
.
För att lägga till unika begränsningar måste du göra några rensningar på ditt bord.
Frågorna nedan tar bort några dubbletter av poster och ändrar tabell genom att lägga till en unik begränsning i kolumnen 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);
Här är en fullständig demonstration