MySQL查询以统计多个表中的所有记录

MySQL查询以统计多个表中的所有记录,mysql,function,count,Mysql,Function,Count,我想计算所有表中的所有记录。我尝试了此操作,但不起作用 DELIMITER $ CREATE FUNCTION countr(p_tablename varchar(10)) RETURN int(10) BEGIN DECLARE ra int; DECLARE table_count INT; SET ra= (SELECT COUNT(*) INTO table_count FROM information_schema.tables WHERE TABLE_SCHEMA

我想计算所有表中的所有记录。我尝试了此操作,但不起作用

DELIMITER $
CREATE FUNCTION countr(p_tablename varchar(10)) RETURN int(10) BEGIN DECLARE ra int; DECLARE table_count INT;
SET ra=
  (SELECT COUNT(*) INTO table_count
   FROM information_schema.tables
   WHERE TABLE_SCHEMA = 'dest_northwind'
     AND TABLE_NAME = p_tablename); RETURN ra; END$ DELIMITER ;
这样就可以了

SELECT SUM(TABLE_ROWS) 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = DATABASE();
更新-提问者希望只获取表子集的行,所以我更新了它,以包含各个表的总和或这些表自身的计数

表行的总和

SELECT SUM(TABLE_ROWS) 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = DATABASE()
    AND TABLE_NAME IN ('Table2','Table1');
按表列出的表行

SELECT TABLE_NAME,SUM(TABLE_ROWS) 
FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA = DATABASE()
    AND TABLE_NAME IN ('Table2','Table1')
GROUP BY TABLE_NAME;

如果你的问题指出了确切的错误,也许会有所帮助。我还应该补充说,这是100%测试和工作。是的,工作,但我想要的是每个表的计数而不是所有行的总和。谢谢你确认它的工作,再次我建议编辑你的问题-我看不出有什么不同(除了我的代码更简洁),但我会添加一些限制表。请通过这个链接