最佳答案
您可以将这个问题与数据库归档过程联系起来,在该过程中您可以归档旧数据(可以按日/月/年),并且该归档数据可以存储到另一个表中,这有利于备份。 这可以通过简单的 cron 作业来完成。
As you might aware of cron job which is a time based job scheduler in unix system to run automatically at a specified time and date. - https://kb.iu.edu/d/afiz
您可以按照以下步骤编写一个 shell 脚本,其中包含用于数据库归档的 mysql 查询
- 在同一数据库上创建存档表 - 用于备份
create table archive_table like main_table;
- 将旧数据插入到 Archive 表中,以便将来需要时可以使用它,在本例中它将插入一天前的数据(您可以根据您的要求进行更改)
insert into archive_table select * from main_table where created_at < DATE_SUB(NOW(), INTERVAL 1 DAY);
- 通过运行以下查询从主表中删除相同的数据
delete from main_table where created_at < DATE_SUB(NOW() - INTERVAL 1 DAY);
使用上层查询构建脚本文件(请参阅 shell 脚本语法来构建脚本)。 通过运行以下命令打开您的 crontab 列表
crontab -l
并将以下命令放入 crontab 列表中。根据脚本文件的路径更改此命令。用于crontab-guru引用并放置
0 0 * * * cd path-to-script-file && sh path-to-shell-script-file
关于mysql - 是否可以根据创建日期安排从 mysql 表中删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50599290/