使用WHERE条件进行MySQL备份

时间:2013-08-22 05:03:54

标签: mysql mysqldump

是否可以使用WHERE条件备份MySQL表? 例如,
我有一个日期和时间列表。

现在我要使用日期> ='2013-08-01'备份该表。

我的想法是选择临时表所需的数据,然后备份该临时表。

还有其他办法吗?

3 个答案:

答案 0 :(得分:4)

TRY this :

$db_user = "username";
$db_pass = "password";

exec("mysqldump --opt -u$db_user -p$db_pass --no-create-info --where date >= '2013-08-01' my_database my_table > backup.sql");

答案 1 :(得分:1)

这可能有助于您尝试此操作 为了使其工作,您需要将MySQL bin Program Files文件夹中的mysqldump.exe和mysql.exe复制到与执行PHP脚本相同的目录中。如果您知道服务器的直接路径,则可以使用它们。

 // Config
    $db_user = "db_username";
    $db_pass = "db_pass";

    // Dump an entire database
    exec("mysqldump --opt -u$db_user -p$db_pass my_database > backup.sql");

    // Dump a table
    exec("mysqldump --opt -u$db_user -p$db_pass my_database my_table > backup.sql");

    // Dump just table rows without structure
    exec("mysqldump --opt -u$db_user -p$db_pass --no-create-info my_database my_table > backup.sql");

    // Dump just table rows with WHERE clause without structure
    exec("mysqldump --opt -u$db_user -p$db_pass --no-create-info --where=id='1' my_database my_table > backup.sql");

    // Restoring from .sql file
    exec("mysql -u$db_user -p$db_pass my_database < backup.sql");

请注意。 exec()函数以mysqldump开头的地方;例如,如果不允许从bin文件夹中复制两个必需的文件,则可以用C:Program FilesMySQLbinmysqldump.exe替换它。

答案 2 :(得分:0)

是的,可以 备份带有WHERE条件的MySQL表

尝试以下查询

select * --specify column name or back up every column
into back_up_table
from table_name
where date >= '2013-08-01'