我在我的网站上运行积分系统,因此我需要将用户不同操作的日志保存到数据库中。问题是我有太多用户并且永久保留所有记录可能会导致服务器过载......我有办法让每个用户只保留 10 条记录并自动删除旧条目吗? mysql 有这方面的功能吗?
提前致谢
最佳答案
您可以添加一个触发器来负责删除旧条目。 例如,
DELIMITER //
CREATE definer='root'@'localhost' TRIGGER afterMytableInsert AFTER INSERT ON MyTable
FOR EACH ROW
BEGIN
DELETE FROM MyTable WHERE user_id = NEW.user_id AND id NOT IN
(SELECT id FROM MyTable WHERE user_id = NEW.user_id ORDER BY action_time DESC LIMIT 10);
END//
关于php - 每个用户只保留 10 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3291298/