mysql设置触发器的最大行数

标签 mysql triggers max

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

相关文章:

python - 最小-最大 python v3 实现

sql-server - 在 MS SQL 触发器中处理多条记录

php - 从 SQL 表中选择 MAX 值应用于另一个表

mysql - 如何将 docker 容器与主机的 localhost mysql 数据库连接?

php - 在 WordPress 中显示来自 SQL 数据库的数据

oracle - 在 Oracle Forms 中主从关系中的详细信息 block 上禁用查询检索 (ctrl+f11)

wpf - 触发器和动画

sql - 简单的 MySQL 问题 - MAX(field)?

mysql - 将 PYQT 与 WordPress 结合使用

mysql - 当前行为空时如何选择相关行?