如何限制MySQL表中的总行数

4

我希望表格最多只能有100行,如果我添加了第101行,那么第1行应该自动删除。同样地,我只想要表格的总行数为100,删除顺序应该是先进先出。


是否有任何直接的MySQL函数可以实现这个功能?


尝试使用BEFORE INSERT触发器。 - Rohan
嗨,这里查看答案:http://stackoverflow.com/questions/622326/how-do-you-make-a-threshold-or-limit-mysql-table?rq=1 - Jothi Kannan
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 ;

1
您可以使用以下简单的触发器:
CREATE TRIGGER Deleter AFTER INSERT on YourTable FOR EACH ROW
BEGIN
    Delete from yourTable where ID = (Select MIN(id) from yourTable);
END;

与以下内容相同: 如何设置MySQL表的阈值或限制?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接