php - 每个用户只保留 10 条记录

标签 php mysql

我在我的网站上运行积分系统,因此我需要将用户不同操作的日志保存到数据库中。问题是我有太多用户并且永久保留所有记录可能会导致服务器过载......我有办法让每个用户只保留 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/

相关文章:

php - 将帖子内容放入标题中

php - 具有相关数据的旧数据库,我的 mysql 查询有问题

php - 使用php7从MySQL打印数据

mysql - 亚马逊 Linux ami 上的 Percona 5.6 失败

mysql - Rails App [3.2.14] 似乎连接到了错误的数据库? [mysql]

mysql - 如何在 MySQL 中为 case 语句编写 Criteria Builder

php - 如何使用 PHP/HTML 更新时保存下拉列表选项?

php - mb_strlen() 够了吗?

php - 在 PHP 中读取非常大(超过 100MB)的 Excel 文件

MySQL UPDATE 查询语法错误