温馨提示×

mysql如何查询所有表行数

小亿
83
2024-09-03 06:58:37
栏目: 云计算

要查询MySQL中所有表的行数,您可以使用以下方法:

  1. 首先,需要创建一个存储过程来遍历所有表并计算行数。在MySQL命令行中运行以下代码:
DELIMITER //
CREATE PROCEDURE count_rows()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE tableName CHAR(255);
    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 = TRUE;

    CREATE TEMPORARY TABLE temp_row_counts (tableName VARCHAR(255), 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 temp_row_counts VALUES (tableName, @rowCount);
    END LOOP;

    CLOSE cur;

    SELECT * FROM temp_row_counts;
END//
DELIMITER ;

这将创建一个名为count_rows的存储过程,该过程将遍历当前数据库中的所有表,并计算每个表的行数。

  1. 调用存储过程以查看所有表的行数:
CALL count_rows();

这将返回一个结果集,其中包含每个表的名称及其对应的行数。请注意,这种方法可能需要一些时间才能在大型数据库上完成。

0