Ändern Sie die Tabelle, indem Sie UNIQUE
hinzufügen Einschränkung
ALTER TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
aber Sie können dies tun, wenn die Tabelle employee
ist leer.
oder wenn Datensätze vorhanden sind, versuchen Sie, IGNORE
hinzuzufügen
ALTER IGNORE TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
AKTUALISIERUNG 1
Irgendetwas ist schief gelaufen, denke ich. Sie müssen nur der Spalte ename
eine eindeutige Einschränkung hinzufügen seit eno
wird aufgrund von AUTO_INCREMENT
immer eindeutig sein .
Um Unique Constraint hinzuzufügen, müssen Sie einige Aufräumarbeiten an Ihrer Tabelle vornehmen.
Die folgenden Abfragen löschen einige doppelte Datensätze und ändern die Tabelle, indem sie der Spalte ename
eine eindeutige Einschränkung hinzufügen .
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 ist eine vollständige Demonstration