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