如何限制mysql表中的总行数

时间:2013-07-29 07:29:59

标签: mysql

我希望表的最大行数为100,如果我向该表添加101行,则1行应自动删除。同样我只想将表总行数计算为100,删除顺序应为FIFO 有没有直接的MySQL功能呢?

2 个答案:

答案 0 :(得分: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 :(得分:1)

您可以使用下面的简单触发器:

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

同样如下: How do you make a threshold or limit mysql table?