我想创建一个最多应包含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行.