我想创建一个最多包含 5 行的表格。因此,如果我添加一个新行并且该表已经有 5 行,触发器应该删除第一行并添加新行。
例如:
my_table
id | data
---------
1 | a
---------
2 | b
---------
3 | c
---------
4 | d
改为
my_table
id | data
---------
2 | b
---------
3 | c
---------
4 | d
---------
5 | e
最佳答案
您可以使用触发器来做到这一点:
CREATE TRIGGER handleFiveRows BEFORE INSERT ON tableName
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM tableName) = 5 THEN
DELETE FROM tableName
ORDER BY id
LIMIT 1;
END IF;
END;
每当您有 5 行时,这将删除具有最小 ID 的行,并且在您插入之后您将再次获得 5 行。
关于mysql设置触发器的最大行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20313221/