我有INNODB TABLE MONITOR OUTPUT,需要从中获取CREATE TABLE语句。 有没有人知道可以生成它的工具?
提前谢谢!
答案 0 :(得分:0)
我不知道可以生成它的工具。这是一个示例shell命令,可用于搜索表的名称并生成一系列SHOW CREATE TABLE命令:
grep '^TABLE: name .*/' <name-of-mysqld-error-log> |
sed -e 's/^/SHOW CREATE /' -e 's/: name / `/' -e 's#/#`.`#' -e 's/,.*/`;/'
这应该是这样的一行:
TABLE: name test/parent, id 0 13, columns 6, indexes 2, appr.rows 299
进入这个:
SHOW CREATE TABLE `test`.`parent`;
然后收集输出并将其作为SQL脚本运行。
此外,您应该知道,从MySQL 5.6开始,不推荐使用通过创建特别命名的表激活的InnoDB监视器功能,并从MySQL 5.7中的产品中删除。
新的信息来源是INFORMATION_SCHEMA。有关从INFORMATION_SCHEMA中检索信息的示例,请参阅How can I use SHOW CREATE TABLE in a subquery?。
答案 1 :(得分:0)
不是来自表监视器,但您可以从InnoDB字典生成表结构:
https://twindb.com/recover-table-structure-from-innodb-dictionary/