首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysqldump备份具有新表名的表

问使用mysqldump备份具有新表名的表
EN

Database Administration用户
提问于 2014-09-07 22:20:28
回答 2查看 11K关注 0票数 3

是否有方法使用mysqldump备份表,以便备份的表在mysqldump创建的sql脚本中有一个新名称。

所以如果我像这样备份表'test_table‘。

代码语言:javascript
复制
mysqldump -u user -p db_name test_table > backup.sql

我希望“test_table”现在在创建的backup.sql中被称为“test_table_backup”。

代码语言:javascript
复制
CREATE TABLE `test_table_backup` (

...

);

我知道我可以转储文件,然后手工完成搜索,并在表名上进行替换,但我希望有一种更安全的方法使用mysqldump本身。

EN

回答 2

Database Administration用户

发布于 2014-09-08 19:32:28

您必须使用sed来转换表名

代码语言:javascript
复制
mysqldump -u user -p db_name test_table | sed 's/test_table/test_table_backup/g' > backup.sql

试试看!!

票数 3
EN

Database Administration用户

发布于 2019-03-21 18:16:27

sed是更改表名的一种简单方法(如另一个答案中提到的)。如果您担心table_name可能会作为表数据的一部分出现,则可以添加回勾空格,以便使用sed语句更准确。这是因为mysqldump总是用回勾和空格包围表名。

代码语言:javascript
复制
mysqldump -u username -p db_name table_name | sed -e 's/ `table_name` / `table_name_new` /' > dump_table_new.sql

当然,如果您已经有了转储文件,就不需要再次运行mysqldump。

代码语言:javascript
复制
sed -e 's/ `table_name` / `table_name_new` /' < dump_table_name.sql > dump_table_new.sql

如果您想要复制没有mysqldump的表,那么我建议使用在Percona工具箱中进行pt表同步。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/76011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档