Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Xóa bản ghi cụ thể theo EmployeeId trong MySQL

Cú pháp DELETE cơ bản

DELETE FROM ten_bang
WHERE dieu_kien;

Ví dụ

Tạo bảng:

CREATE TABLE DemoTable615 (
    EmployeeId VARCHAR(100),
    EmployeeName VARCHAR(100)
);
INSERT INTO DemoTable615 VALUES
('EMP-101', 'Adam'),
('EMP-1001', 'David'),
('EMP-1002', 'Chris'),
('EMP-1003', 'Robert');

Xóa nhân viên có ID = 'EMP-1002':

DELETE FROM DemoTable615
WHERE EmployeeId = 'EMP-1002';

Kết quả: 1 row affected. Bảng còn 3 dòng.

Các biến thể DELETE

LoạiCú phápMô tả
Xóa 1 dòngDELETE FROM t WHERE id = 1Khóa chính duy nhất
Xóa nhiều dòngDELETE FROM t WHERE status = 'inactive'Cẩn thận với WHERE
Xóa tất cảDELETE FROM t hoặc TRUNCATE TABLE tTRUNCATE nhanh hơn, reset auto_increment
Xóa với JOINDELETE t1 FROM t1 JOIN t2 ON ... WHERE ...Xóa dựa trên bảng khác
Xóa có LIMITDELETE FROM t WHERE ... LIMIT 100Batch delete tránh lock lâu

Lưu ý an toàn

  • Luôn test SELECT trước: SELECT * FROM DemoTable615 WHERE EmployeeId = 'EMP-1002'.
  • Sử dụng TRANSACTION cho phép rollback: START TRANSACTION; DELETE ...; ROLLBACK;/COMMIT;.
  • Foreign Key: Nếu bảng khác tham chiếu, cần ON DELETE CASCADE hoặc xóa bảng con trước.
  • DELETE không reset AUTO_INCREMENT, TRUNCATE thì reset.

Hiệu năng

  • Index trên cột WHERE → nhanh.
  • Xóa lượng lớn: Chia batch (LIMIT 1000) + sleep giữa các batch để tránh lock table lâu.
  • Partitioning: DROP PARTITION tức thì cho dữ liệu cũ.