是否可以使用WHERE条件备份MySQL表?
例如,
我有一个日期和时间列表。
现在我要使用日期> ='2013-08-01'备份该表。
我的想法是选择临时表所需的数据,然后备份该临时表。
还有其他办法吗?
答案 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'