mysql使用触发器设置最大行数

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

上一篇:java-如何在stateless4j触发器中发送参数


下一篇:如何在触发器中放置多个更新?