4

我想要一个表最大行数为 100,如果我向该表添加 101 行,则 1 行应自动删除。同样,我只希望表总行数为 100,删除顺序应该是 FIFO。
是否有任何直接的 MySQL 功能?

4

2 回答 2

5

为此使用 BEFORE INSERT 触发器。

下面,我保留了25个限制,根据你的需要设置。

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 ;
于 2013-07-29T07:32:36.500 回答
1

您可以像下面这样简单的触发器:

CREATE TRIGGER Deleter AFTER INSERT on YourTable FOR EACH ROW
BEGIN
    Delete from yourTable where ID = (Select MIN(id) from yourTable);
END;

同: 如何创建阈值或限制 mysql 表?

于 2013-07-29T07:42:21.517 回答