Mysql
僅導出上個月修改的行(使用者定義的日期)
我在問是否可以在 MySQL 中僅導出一段時間內修改的行,例如在過去一個月中,如果可能,如何?
這將取決於具有時間戳列的表。
mysqldump有一個
--where
選項,您可以在轉儲特定表時定義例子
如果您有一個名為
mydb.mytab
定義如下的表CREATE TABLE mytable ( id INT NOT NULL AUTO_INCREMENT, tm TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) );
您可以按如下方式在該表上指定日期範圍(2013 年 6 月):
WHERE_CLAUSE="(tm >= '2013-06-01 00:00:00') AND" WHERE_CLAUSE="${WHERE_CLAUSE} (tm < '2013-07-01 00:00:00')" mysqldump -uroot -p mydb mytable --where="${WHERE_CLAUSE}"
這將是最有幫助的,因為時間戳可以自動更新。
我寫了一篇
Aug 15, 2011
關於如何使用--where
轉儲不基於時間戳的數據子集的文章:Is it possible to mysqldump a subset of a database required to replicate a query?如果您在所需的表中沒有時間戳列,最好只保留在任何給定月份生成的所有二進制日誌。