की गणना कर रहे हैं, मुझे वही समस्या थी जिसने मुझे इस प्रश्न का नेतृत्व किया।
कंप्यूटर Guy12345 के उत्तर के लिए धन्यवाद, मैं एक संग्रहित प्रक्रिया के साथ आया था कि कॉपी-पेस्ट किए बिना ऐसा करता है। जैसा कि उसने कहा, सावधान रहें कि यह प्रत्येक तालिका को स्कैन करेगा और इसमें कुछ समय लग सकता है।
DELIMITER $$
CREATE PROCEDURE `all_tables_rowcount`(databaseName VARCHAR(250))
BEGIN
DECLARE p_done INT DEFAULT FALSE;
DECLARE p_queryString varchar(250) ;
DECLARE p_cur CURSOR FOR SELECT queryString FROM tmp.tableCountQueries;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET p_done = TRUE;
DROP TEMPORARY TABLE IF EXISTS tmp.tableCountQueries;
DROP TEMPORARY TABLE IF EXISTS tmp.tableCounts;
CREATE TEMPORARY TABLE tmp.tableCounts(TableName varchar(250), RowCount BIGINT) ;
CREATE TEMPORARY TABLE tmp.tableCountQueries(queryString varchar(250)) AS
(
SELECT CONCAT(
'INSERT INTO tmp.tableCounts(TableName, RowCount) SELECT "',
table_name,
'", COUNT(*) AS RowCount FROM ',
table_schema,
'.',
table_name
) AS queryString
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = databaseName
) ;
OPEN p_cur;
read_loop: LOOP
FETCH p_cur INTO p_queryString;
IF p_done THEN
LEAVE read_loop;
END IF;
SET @queryString = p_queryString ;
PREPARE rowcountTable FROM @queryString;
EXECUTE rowcountTable ;
END LOOP;
SELECT * FROM tmp.tableCounts ;
END
क्योंकि मैंने गलती से मेरे उदाहरण में एक 'गिरा दिया' है।मुझे वास्तव में किसी विशेष डेटाबेस में सभी तालिकाओं से पंक्तियों की गणना करने की आवश्यकता है। –
विस्तारित उत्तर: http://stackoverflow.com/questions/24707814/mysql-summarize-all-table-row-counts-in-a-single-query – gwideman
यह http://stackoverflow.com/ का डुप्लिकेट नहीं है प्रश्न/2692340/mysql-गिनती-सभी पंक्तियों-प्रति-टेबल के लिए-इन-वन-क्वेरी। यह प्रश्न विशेष रूप से इनो डीबी टेबल के साथ डेटाबेस के बारे में पूछता है। –