gpt4 book ai didi

mysql - 如何有选择地转储 mysql 数据库中的所有 innodb 表?

转载 作者:可可西里 更新时间:2023-11-01 08:08:23 26 4
gpt4 key购买 nike

我有一个名为 av2web 的数据库,其中包含 130 个 MyISAM 表和 20 个 innodb 表。我想获取这 20 个 innodb 表的 mysqldump,并将其作为 MyISAM 表导出到另一个数据库。

你能告诉我一个更快的方法吗?

谢谢佩德罗·阿尔瓦雷斯·埃斯皮诺萨。

最佳答案

如果这是一次性操作,我会这样做:

use DB;
show table status name where engine='innodb';

然后从“名称”列复制/粘贴一个矩形:

+-----------+--------+---------+------------+-
| Name | Engine | Version | Row_format |
+-----------+--------+---------+------------+-
| countries | InnoDB | 10 | Compact |
| foo3 | InnoDB | 10 | Compact |
| foo5 | InnoDB | 10 | Compact |
| lol | InnoDB | 10 | Compact |
| people | InnoDB | 10 | Compact |
+-----------+--------+---------+------------+-

到文本编辑器并将其转换为命令

mysqldump -u USER DB countries foo3 foo5 lol people > DUMP.sql

然后在DUMP.sql中用ENGINE=MyISAM替换所有ENGINE=InnoDB实例后导入

如果你想避免矩形复制/粘贴魔法,你可以这样做:

use information_schema;
select group_concat(table_name separator ' ') from tables
where table_schema='DB' and engine='innodb';

这将返回 countries foo3 foo5 lol people

关于mysql - 如何有选择地转储 mysql 数据库中的所有 innodb 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com