尽管在那篇文章中声明,您可能不需要经常运行优化表。它确实不会使查询运行得更快。
但是让我们谈谈您遇到的错误以及如何解决它。
查询的第一行输出不是表名,而是列标题,在本例中是您使用的表达式。
for i in `mysql -e 'select concat(table_schema,".",table_name) from information_schema.tables where engine="MyISAM"'`;
do
echo "$i";
done
输出:
concat(table_schema,".",table_name)
test.m
(我不得不创建一个表m是MyISAM,因为我不正常使用MyISAM,我推荐you should not use MyISAM either。)
如果您想跳过列标题,请使用-N 或--skip-column-names 选项。
for i in `mysql -N -e 'select concat(table_schema,".",table_name) from information_schema.tables where engine="MyISAM"'`;
do
echo "$i";
done
输出:
test.m
您可能还想对架构和表名进行分隔,因为这两个名称都可能是保留字。
for i in `mysql -N -e 'select concat("\`",table_schema,"\`.\`",table_name,"\`") from information_schema.tables where engine="MyISAM"'`;
do
echo "$i";
done
输出:
`test`.`m`