把另一数据库实例中数据按主键导入本实例相应数据表内

两个数据库实例

一个向另一个导入批量数据

如以下执行向本数据库表中导入y2026hxp_online中相应数据,按主键排除

以下表中主键为CAS,JTJND,TJND,XZQH

INSERT INTO BIZ_DATA_TABLE
  SELECT *
  FROM   DB2.BIZ_DATA_TABLE WTTP
  WHERE  NOT EXISTS
           (SELECT 1
            FROM   BIZ_DATA_TABLE TMP
            WHERE  WTTP.CAS = TMP.CAS AND WTTP.JTJND = TMP.JTJND AND WTTP.TJND = TMP.TJND AND WTTP.XZQH = TMP.XZQH);

根据以上语句,形成以下直接执行的过程

-- 动态生成 INSERT 语句并执行
SET @SQL =
      (SELECT GROUP_CONCAT(CC ORDER BY CC ASC SEPARATOR ';') CCC
       FROM   (SELECT   CONCAT('INSERT INTO ', TABLE_NAME, ' SELECT * FROM y2026hxp_online.', TABLE_NAME, ' WTTP WHERE NOT EXISTS', '(SELECT 1 FROM ', TABLE_NAME, ' TMP WHERE ', GROUP_CONCAT(CONCAT('WTTP.`', COLUMN_NAME, '` = TMP.`', COLUMN_NAME, '`') ORDER BY COLUMN_NAME ASC SEPARATOR ' AND '), ');') CC
               FROM     INFORMATION_SCHEMA.COLUMNS
               WHERE    (TABLE_NAME LIKE 'tb%' OR TABLE_NAME LIKE 'bpm%' OR TABLE_NAME LIKE 'base_user%') AND TABLE_SCHEMA =
                        DATABASE() AND COLUMN_KEY = 'pri'
               GROUP BY TABLE_NAME) WW);

PREPARE STMT FROM @SQL;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;

 

posted on 2026-06-07 20:35  骑着母猪去打猎  阅读(7)  评论(0)    收藏  举报