是否有方法使用mysqldump备份表,以便备份的表在mysqldump创建的sql脚本中有一个新名称。
所以如果我像这样备份表'test_table‘。
mysqldump -u user -p db_name test_table > backup.sql我希望“test_table”现在在创建的backup.sql中被称为“test_table_backup”。
CREATE TABLE `test_table_backup` (
...
);我知道我可以转储文件,然后手工完成搜索,并在表名上进行替换,但我希望有一种更安全的方法使用mysqldump本身。
发布于 2014-09-08 19:32:28
您必须使用sed来转换表名
mysqldump -u user -p db_name test_table | sed 's/test_table/test_table_backup/g' > backup.sql试试看!!
发布于 2019-03-21 18:16:27
sed是更改表名的一种简单方法(如另一个答案中提到的)。如果您担心table_name可能会作为表数据的一部分出现,则可以添加回勾空格,以便使用sed语句更准确。这是因为mysqldump总是用回勾和空格包围表名。
mysqldump -u username -p db_name table_name | sed -e 's/ `table_name` / `table_name_new` /' > dump_table_new.sql当然,如果您已经有了转储文件,就不需要再次运行mysqldump。
sed -e 's/ `table_name` / `table_name_new` /' < dump_table_name.sql > dump_table_new.sql如果您想要复制没有mysqldump的表,那么我建议使用在Percona工具箱中进行pt表同步。
https://dba.stackexchange.com/questions/76011
复制相似问题