我想要一个表最大行数为 100,如果我向该表添加 101 行,则 1 行应自动删除。同样,我只希望表总行数为 100,删除顺序应该是 FIFO。
是否有任何直接的 MySQL 功能?
问问题
220 次
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;
于 2013-07-29T07:42:21.517 回答