我在mysql中创建了一个表。
我想这个表只存储30行,当超过30行,让我们说是31行,然后表必须删除旧的30行。
这在mysql中是可能的吗?
我使用了下面的触发器,但它对我不起作用。
CREATE TRIGGER my_name
BEFORE INSERT ON try
FOR EACH ROW
BEGIN
DECLARE cnt INT;
SELECT count(*) INTO cnt FROM try;
IF cnt = 30 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'You can store only 10 records.';
END IF;
END;
2条答案
按热度按时间rslzwgfq1#
可以使用存储过程代替常规的insert语句。存储过程将首先根据输入参数添加行,然后根据需要删除旧行。请看下面的例子。您可能需要调整的输入参数
limitedInsert
基于表的列的过程。我的示例表架构
程序
使用存储过程插入数据
1wnzp6jl2#
在下面的屏幕中显示显示程序状态的结果
屏幕1