You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过循环统计以G结尾的表的记录数并按表名命名结果

高效统计所有以G结尾的表的记录数并生成对应结果表

以MySQL为例的实现方案

  1. 筛选目标表列表
    先通过系统视图获取所有名称以G结尾的表:
SELECT table_name 
FROM information_schema.tables 
WHERE table_schema = '你的数据库名' 
AND table_name LIKE '%G';
  1. 编写存储过程批量处理
    创建存储过程循环遍历目标表,自动生成以output_原表名命名的统计结果表:
DELIMITER //
CREATE PROCEDURE CountTablesEndingWithG()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE tbl_name VARCHAR(255);
    DECLARE cur CURSOR FOR 
        SELECT table_name 
        FROM information_schema.tables 
        WHERE table_schema = '你的数据库名' 
        AND table_name LIKE '%G';
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    OPEN cur;
    read_loop: LOOP
        FETCH cur INTO tbl_name;
        IF done THEN
            LEAVE read_loop;
        END IF;
        -- 动态生成创建结果表的SQL
        SET @sql = CONCAT(
            'CREATE TABLE IF NOT EXISTS output_', tbl_name, 
            ' AS SELECT COUNT(*) AS record_count FROM ', tbl_name
        );
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
    END LOOP;
    CLOSE cur;
END //
DELIMITER ;

-- 执行存储过程
CALL CountTablesEndingWithG();

关键注意事项

  • 替换语句中的你的数据库名为实际使用的数据库名称
  • 若需要覆盖已存在的结果表,将CREATE TABLE IF NOT EXISTS改为CREATE TABLE(会删除原有表并重建)
  • 确保执行脚本的用户拥有查询information_schema、创建表以及查询目标表的权限

SQL Server环境下的替代脚本

如果使用SQL Server,可使用以下游标脚本实现相同功能:

DECLARE @tbl_name NVARCHAR(255)
DECLARE cur CURSOR FOR
    SELECT name 
    FROM sys.tables 
    WHERE name LIKE '%G'

OPEN cur
FETCH NEXT FROM cur INTO @tbl_name

WHILE @@FETCH_STATUS = 0
BEGIN
    DECLARE @sql NVARCHAR(MAX)
    SET @sql = N'CREATE TABLE output_' + @tbl_name + N' (record_count BIGINT); INSERT INTO output_' + @tbl_name + N' SELECT COUNT(*) FROM ' + @tbl_name
    EXEC sp_executesql @sql
    FETCH NEXT FROM cur INTO @tbl_name
END

CLOSE cur
DEALLOCATE cur

内容的提问来源于stack exchange,提问作者KC0_0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:50:06