我想创建一个最多5行的表。因此,如果我添加一个新行并且该表已经有5行,则触发器应该删除第一行并添加新行。
e.g:
my_table
id | data
---------
1 | a
---------
2 | b
---------
3 | c
---------
4 | d
更改为
my_table
id | data
---------
2 | b
---------
3 | c
---------
4 | d
---------
5 | e
答案 0 :(得分:4)
您可以使用触发器执行此操作:
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行。