Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách ngăn bản ghi trùng lặp từ bảng của tôi Chèn bỏ qua không hoạt động ở đây

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kết nối Google Cloud SQL với C #

  2. Phương pháp hay nhất để lưu trữ tên người dùng và mật khẩu trong Cơ sở dữ liệu MySQL

  3. Vấn đề mã hóa UTF8 - Với các ví dụ điển hình

  4. JSON_DEPTH () - Tìm độ sâu tối đa của tài liệu JSON trong MySQL

  5. Cách giải nén chuỗi con trong MySQL