2016-05-10 4 views
1

私はこれを試したすべてのテーブルからすべてのレコードを数えたいが、これは動作しません。MySQL複数のテーブルからすべてのレコードを数えるクエリ

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 ; 

答えて

1

これはそれを行います...

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; 
+0

はまだ多分エラー –

+0

を示します。私はこれも100%テストされ、動作していることを追加する必要があります。 – Barry

+0

はい、動作していますが、すべての行の合計ではなく、すべてのテーブルの数が欲しいです –

関連する問題