Tôi đồng ý với Erik; TRUNCATE TABLE là cách để đi. Tuy nhiên, nếu bạn không thể sử dụng vì lý do nào đó (ví dụ:nếu bạn không thực sự muốn xóa mọi hàng trong bảng), bạn có thể thử các tùy chọn sau:
- Xóa các hàng trong các lô nhỏ hơn (ví dụ:XÓA KHỎI BAO_GIẢM BẰNG CÁCH NÀO id GIỮA? và?)
- Nếu đó là bảng MyISAM (trên thực tế, bảng này cũng có thể hoạt động với InnoDB), hãy thử phát hành BẢNG KHÓA trước khi XÓA. Điều này sẽ đảm bảo rằng bạn có quyền truy cập độc quyền.
- Nếu đó là một bảng InnoDB, thì sau thời gian chờ xảy ra, hãy sử dụng SHOW INNODB STATUS. Điều này sẽ cung cấp cho bạn một số thông tin chi tiết về lý do tại sao quá trình chuyển đổi khóa không thành công.
- Nếu bạn có SUPER đặc quyền, bạn có thể thử HIỂN THỊ TẤT CẢ DANH SÁCH QUY TRÌNH để xem các kết nối khác (nếu có) đang sử dụng bảng nào và sau đó sử dụng KILL để loại bỏ (các) kết nối mà bạn đang cạnh tranh.
Tôi chắc rằng có nhiều khả năng khác; Tôi hy vọng một trong những sự giúp đỡ này.