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

MySQL动态插入:将centraldb中tifa_前缀表同步至同名_hist表

解决办法

1. 用存储过程批量同步所有表

70多张表手动写INSERT太折腾,直接整个存储过程自动生成并执行同步逻辑:

DELIMITER //

CREATE PROCEDURE SyncTifaToHist()
BEGIN
    DECLARE done INT DEFAULT FALSE;
    DECLARE src_table VARCHAR(255);
    DECLARE dest_table VARCHAR(255);
    DECLARE col_list VARCHAR(10000);
    DECLARE insert_sql VARCHAR(10000);
    
    -- 遍历所有tifa_前缀的表
    DECLARE table_cursor CURSOR FOR
        SELECT table_name
        FROM information_schema.tables
        WHERE table_schema = 'centraldb' AND table_name LIKE 'tifa_%';
    
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    
    OPEN table_cursor;
    
    read_loop: LOOP
        FETCH table_cursor INTO src_table;
        IF done THEN
            LEAVE read_loop;
        END IF;
        
        -- 生成目标表名:比如tifa_user → tifa_user_hist
        SET dest_table = CONCAT(src_table, '_hist');
        
        -- 获取源表中除`as_of_date`外的所有列名,拼接成字符串
        SELECT GROUP_CONCAT(column_name SEPARATOR ', ')
        INTO col_list
        FROM information_schema.columns
        WHERE table_schema = 'centraldb' AND table_name = src_table
          AND column_name != 'as_of_date';
        
        -- 生成插入SQL,指定`as_of_date`为执行当日的前一天
        SET insert_sql = CONCAT(
            'INSERT INTO centraldb.', dest_table, '(', col_list, ', as_of_date) ',
            'SELECT ', col_list, ', DATE_SUB(CURDATE(), INTERVAL 1 DAY) ',
            'FROM centraldb.', src_table, ';'
        );
        
        -- 执行生成的SQL语句
        SET @sql = insert_sql;
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
        
    END LOOP;
    
    CLOSE table_cursor;
END //

DELIMITER ;

2. 使用步骤

  • 先在MySQL客户端执行上述代码,创建存储过程
  • 调用存储过程启动同步:
CALL SyncTifaToHist();

3. 注意事项

  • 确保所有_hist结尾的目标表已创建,结构与对应tifa_前缀的源表一致,且必须包含as_of_date字段(建议设置为DATE类型)
  • 如果需要增量同步(仅同步新增/更新的数据),可在SELECT语句后添加WHERE过滤条件,比如基于表内的更新时间字段筛选
  • 执行前务必在测试环境验证逻辑,避免生产数据异常
  • 若存在个别表结构与其他表不一致的情况,可在存储过程中添加判断逻辑,跳过或单独处理这类表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:27:27