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 đủ