91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

mysql怎么查詢所有表行數

小億
276
2024-09-03 09:31:51
欄目: 云計算

要查詢MySQL中所有表的行數,可以使用以下方法:

  1. 使用information_schema數據庫:

information_schema是一個包含MySQL服務器元數據(例如數據庫名、表名、列名等)的數據庫。可以通過查詢information_schema.TABLES表來獲取所有表的行數。

以下是查詢所有表行數的SQL語句:

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema')
ORDER BY TABLE_ROWS DESC;

這條SQL語句會返回一個結果集,其中包含了數據庫名(TABLE_SCHEMA)、表名(TABLE_NAME)和表的行數(TABLE_ROWS)。

注意:information_schema.TABLES表中的TABLE_ROWS列只是一個估計值,可能不是精確的行數。如果需要精確的行數,可以使用SELECT COUNT(*) FROM table_name來查詢每個表的行數。

  1. 遍歷所有表并查詢行數:

可以編寫一個腳本或存儲過程來遍歷所有表并查詢每個表的行數。以下是一個使用存儲過程的示例:

DELIMITER //
CREATE PROCEDURE GetAllTableRowCounts()
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE tableName CHAR(64);
    DECLARE rowCount BIGINT;
    DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE();
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    CREATE TEMPORARY TABLE tempRowCounts (tableName CHAR(64), rowCount BIGINT);

    OPEN cur;
    read_loop: LOOP
        FETCH cur INTO tableName;
        IF done THEN
            LEAVE read_loop;
        END IF;

        SET @sql = CONCAT('SELECT COUNT(*) INTO @rowCount FROM ', tableName);
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;

        INSERT INTO tempRowCounts VALUES (tableName, @rowCount);
    END LOOP;
    CLOSE cur;

    SELECT * FROM tempRowCounts ORDER BY rowCount DESC;
    DROP TEMPORARY TABLE tempRowCounts;
END //
DELIMITER ;

運行上述存儲過程后,可以調用GetAllTableRowCounts()來查詢所有表的行數:

CALL GetAllTableRowCounts();

這將返回一個結果集,其中包含了表名(tableName)和表的行數(rowCount)。

0
临潭县| 荣昌县| 句容市| 嘉祥县| 徐州市| 阿拉善左旗| 始兴县| 襄城县| 无为县| 陕西省| 新密市| 清苑县| 东明县| 屯门区| 通河县| 沾化县| 绵阳市| 永寿县| 元氏县| 富裕县| 婺源县| 樟树市| 锦州市| 昌图县| 密云县| 敖汉旗| 双柏县| 南涧| 永德县| 夏河县| 延庆县| 萨嘎县| 大英县| 万荣县| 道真| 红安县| 黎城县| 九龙县| 铁岭市| 龙里县| 紫云|