此类问题已发布过几次,但提供的解决方案在以下情况下并不理想。在第一个查询中,我选择在执行第一个查询时我知道存在的表名。然后在遍历它们时,我想查询所选表中的记录数,但前提是它们仍然存在。问题是,在循环期间,一些表被另一个脚本删除。例如 :
SELECT tablename FROM table
-- returns say 100 tables
while (%tables){
SELECT COUNT(*) FROM $table
-- by the time it gets to the umpteenth table, it's been dropped
-- so the SELECT COUNT(*) fails
}
而且,我猜是因为它是由 cron 运行的,所以它失败了,并且我收到了一封来自 cron 的电子邮件,说明它失败了。
DBD::mysql::st 执行失败:/usr/local/lib/perl/5.10.1/Mysql.pm 第 175 行不存在表 'xxx'。
脚本正在使用已弃用的 Mysql.pm perl 模块。