php - 使用 php 脚本备份具有 3 个月前数据的特定表
问题描述
我想备份我的一个数据库表,abc
使用PHP
.
其中一列是
timestamp
。我想备份 3 个月大的表filename.sql.gz
并从表中删除数据。将最近 3 个月的数据保留在表格中。
如果可能,输出文件只有INSERT
查询。
解决方案
您首先需要阅读 PHP+数据库集成教程。您可以在 mysql 查询本身中实现上述目标。您也可以使用 PHP……您必须为这个简单的任务编写自己的代码。以下是我在完成此任务时将遵循的步骤,您可以根据您的要求修改这些步骤...
你没有提到你正在使用哪个数据库,我假设它的 Mysql/mariadb
连接数据库(需要适当的访问权限),还需要一些 PHP 文件管理知识
根据时间戳,您应该编写一个可以提取旧数据并将其写入.sql文件的查询(在 stackoverflow 中已经针对此主题提出了很多问题)
在第 2 步成功后,您可以执行 DELETE 操作
在执行此活动时,请确保此数据库/表上没有其他进程/查询正在运行。
脚本必须包含 TRANSACTION START/BEGIN、COMMIT 和 ROLLBACK
如果要在 INSERT 查询中输出文件,则需要 BATCH INSERT。请参阅此以了解批处理查询的外观(如何在 MySQL 中进行批处理插入)您可以编写自定义 PHP 函数来生成 BATCH 实现。
无需触摸您要保留的数据,将保持原样
推荐阅读
- r - 在一个图中绘制 2 个不同变量(相同参数值)的多个箱线图,并将其关联到小平面网格图
- r - 是否可以在绘制分类因子的轴上添加“中断”?
- ui-automation - WebdriverIO 不会在 CircleCI 作业中生成浏览器
- docker - 基于 Python 的 Azure Functions 剧作家
- python - 根据来自另一个字典的匹配项将值添加到字典内的现有列表
- swift - 在多个字段上使用不等式过滤器的 Firestore 查询
- java - 重启VM后无法启动elasticsearch
- linux - 如何在 scyllaDB 安装中解决此问题?
- javascript - 如何使用js单击不同选项卡中的元素
- mongodb - 如何根据多个数组字段删除mongodb中的重复项?