我想使用abc
备份我的一个数据库表PHP
。
其中一列是
timestamp
。我想将3个月大的表备份到filename.sql.gz
中,然后从表中删除数据。 保留表格上最近3个月的数据。
如果可能,输出文件仅包含INSERT
查询。
答案 0 :(得分:0)
您首先需要阅读PHP +数据库集成教程。您可以在mysql查询本身中实现以上功能。您也可以使用PHP ...您必须为此简单的任务编写自己的代码。以下是完成此任务时要遵循的步骤,您可以根据自己的要求修改这些步骤...
您尚未提到您正在使用哪个数据库,而是假设其为Mysql / mariadb
连接数据库(需要正确的访问权限),也需要一些PHP文件管理知识
基于时间戳,您应该编写一个查询,该查询可以提取旧数据并将其写入 .sql 文件(在stackoverflow中,已经对此主题提出了很多问题)
在STEP 2成功后,您可以执行DELETE操作
在执行此活动时,请确保此数据库/表上没有其他进程/查询在运行。
脚本必须包含TRANSACTION START / BEGIN,COMMIT和ROLLBACK
如果要在INSERT查询中输出文件,则需要BATCH INSERT。参考此以了解批处理查询的外观(How to do a batch insert in MySQL) 您可以编写一个自定义PHP函数来生成BATCH实现。
无需触摸要保留的数据,将保持不变