thay đổi bảng bằng cách thêm UNIQUE ràng buộc
ALTER TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
nhưng bạn có thể làm điều này nếu bảng employee trống.
hoặc nếu bản ghi tồn tại, hãy thử thêm IGNORE
ALTER IGNORE TABLE employee ADD CONSTRAINT emp_unique UNIQUE (ename,dno,mgr,sal)
CẬP NHẬT 1
Có gì đó không ổn, tôi đoán vậy. Bạn chỉ cần thêm ràng buộc duy nhất vào cột ename kể từ eno sẽ luôn là duy nhất do AUTO_INCREMENT .
Để thêm ràng buộc duy nhất, bạn cần thực hiện một số thao tác dọn dẹp trên bảng của mình.
Các truy vấn bên dưới xóa một số bản ghi trùng lặp và thay đổi bảng bằng cách thêm ràng buộc duy nhất trên cột 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);
Đây là một minh chứng đầy đủ