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

Giới hạn bảng mysql ở kích thước sertain và tự động xóa các mục nhập cũ nhất

Tôi đề xuất các trình kích hoạt. Đây là cách tốt nhất để đảm bảo rằng tại mỗi lần chèn, kích thước bảng tối đa đang được tính đến.

Có thể trùng lặp trong tổng số Làm cách nào để đặt số hàng tối đa trong bảng MySQL?

Từ câu trả lời được chấp nhận đó:

Cố gắng hạn chế việc thêm bản ghi mới vào bảng. Phát sinh lỗi khi một bản ghi mới sắp được thêm vào.

DELIMITER $$

CREATE TRIGGER trigger1
BEFORE INSERT
ON table1
FOR EACH ROW
BEGIN
  SELECT COUNT(*) INTO @cnt FROM table1;
  IF @cnt >= 25 THEN
    CALL sth(); -- raise an error
  END IF;
END
$$

DELIMITER ;

Lưu ý, thao tác COUNT có thể chậm trên các bảng InnoDb lớn.

Trên MySQL 5.5, bạn có thể sử dụng câu lệnh SIGNAL để báo lỗi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL giống như một lĩnh vực khác

  2. Có gì sai với kết nối PDO?

  3. mysql ERROR 1426 (42000):Độ chính xác quá lớn 14 được chỉ định cho cột 'thời gian'. Maxi mẹ 6 tuổi

  4. SQL:Nhận các bản ghi đáp ứng các điều kiện đến từ nhiều bản ghi

  5. Làm thế nào để có được một số lượng ngay cả khi không có kết quả mysql tương ứng?