1、需求:间隔一段时间,mysql 去操作保留最新n条数据
2、创建事件
db.execSql(“create event delete_test on SCHEDULE EVERY 5 second ON COMPLETION PRESERVE do delete A from ZYY A join (select id from ZYY ORDER BY id desc limit 8, 1) B on A.id < B.id”);
3、开启事件使能
/etc/mysql/mysql.conf.d路径下,mysqld.cnf文件里添加event_scheduler=ON
4、代码
db.execSql(“drop event if exists delete_test”);
db.execSql("create event delete_test on SCHEDULE EVERY 5 second ON COMPLETION PRESERVE do delete A from test_table A join (select id from test_table ORDER BY id desc limit 8, 1) B on A.id < B.id");
static int i = 0;
char str[100];
while(1)
{
i ++;
sprintf(str, "insert into test_table (level) values (%d)", i);
db.execSql("select * from test_table");
printf("lalalalalalalalala \n");
db.execSql(str);
sleep(2);
}
5、结果
参考链接:
https://blog.csdn.net/CYLiberty/article/details/86480476
https://blog.csdn.net/tanksyg/article/details/83898047
https://blog.csdn.net/java123student/article/details/64920936