首页 > 解决方案 > 使用 php 脚本备份具有 3 个月前数据的特定表

问题描述

我想备份我的一个数据库表,abc使用PHP.

其中一列是timestamp。我想备份 3 个月大的表filename.sql.gz并从表中删除数据。将最近 3 个月的数据保留在表格中。

如果可能,输出文件只有INSERT查询。

标签: phpmysqldatabasebackup

解决方案


您首先需要阅读 PHP+数据库集成教程。您可以在 mysql 查询本身中实现上述目标。您也可以使用 PHP……您必须为这个简单的任务编写自己的代码。以下是我在完成此任务时将遵循的步骤,您可以根据您的要求修改这些步骤...

你没有提到你正在使用哪个数据库,我假设它的 Mysql/mariadb

  1. 连接数据库(需要适当的访问权限),还需要一些 PHP 文件管理知识

  2. 根据时间戳,您应该编写一个可以提取旧数据并将其写入.sql文件的查询(在 stackoverflow 中已经针对此主题提出了很多问题)

  3. 在第 2 步成功后,您可以执行 DELETE 操作

  4. 在执行此活动时,请确保此数据库/表上没有其他进程/查询正在运行。

  5. 脚本必须包含 TRANSACTION START/BEGIN、COMMIT 和 ROLLBACK

  6. 如果要在 INSERT 查询中输出文件,则需要 BATCH INSERT。请参阅此以了解批处理查询的外观(如何在 MySQL 中进行批处理插入)您可以编写自定义 PHP 函数来生成 BATCH 实现。

  7. 无需触摸您要保留的数据,将保持原样


推荐阅读