2016-05-10 3 views
1

Я хочу подсчитать все записи из всех таблиц, которые я пробовал, но это не работает.MySQL Query для подсчета всех записей из нескольких таблиц

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(); 

Update - спрашивающий хочет получить только строки для подмножества таблиц, поэтому я обновил это, чтобы содержать сумму отдельных таблиц или считается, что эти столы сами по себе.

Сумма строк таблицы ...

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

Да, но я хочу, чтобы подсчет каждой таблицы не составлял суммы всех строк. –

Смежные вопросы