@liruiyi962464
2025-07-22T07:10:13.000000Z
字数 16181
阅读 106
mysql
mysql -h 202.207.122.44 -u data_sync -p'L$7cx&6W*7zJ##po'
mysql -u root -p'123456'
mysql -u root -p'Zc2024rJ'
USE cpoc_sync
SHOW TABLES;
SELECT VERSION();
-- 确保目标表使用兼容的字符集ALTER TABLE ODS_SXJCSJ CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;ALTER TABLE ODS_SXBXGMQKSJ CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;ALTER TABLE ODS_SXBGJLSJ CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;ALTER TABLE ODS_TYYHRZDLSJ_SXXT CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;ALTER TABLE federated_intern_basic_data CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;ALTER TABLE federated_intern_insurance CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;ALTER TABLE federated_intern_report CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;ALTER TABLE federated_user_auth_data CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 检查是否支持FEDERATED引擎SHOW ENGINES;-- 如果没有启用,需要在my.cnf/my.ini中添加[mysqld]federated-- 开启后 参考sql执行即可
要将你的存储过程设置为每天早上6点自动执行,可以使用 MySQL 的事件调度器(Event Scheduler)。以下是完整的实现步骤:
-- 检查事件调度器状态SHOW VARIABLES LIKE 'event_scheduler';-- 如果未启用,执行以下命令(需要SUPER权限)SET GLOBAL event_scheduler = ON;
DELIMITER //CREATE EVENT daily_sync_eventON SCHEDULEEVERY 1 DAYSTARTS TIMESTAMP(CURRENT_DATE, '06:00:00')DOBEGINCALL sync_all_data_to_server_b();END //DELIMITER ;
SHOW EVENTS;
ALTER EVENT daily_sync_eventON SCHEDULEEVERY 1 DAYSTARTS TIMESTAMP(CURRENT_DATE, '06:00:00')DOCALL sync_all_data_to_server_b();
-- 禁用事件ALTER EVENT daily_sync_event DISABLE;-- 启用事件ALTER EVENT daily_sync_event ENABLE;
DROP EVENT IF EXISTS daily_sync_event;
权限要求:
EVENT 权限错误处理:
服务器时间:
SELECT @@global.time_zone, @@session.time_zone;长期运行:
日志记录:
-- 删除实习成绩数据表DROP TABLE IF EXISTS ODS_SXJCSJ;-- 删除实习保险购买情况表DROP TABLE IF EXISTS ODS_SXBXGMQKSJ;-- 删除实习报告记录表DROP TABLE IF EXISTS ODS_SXBGJLSJ;-- 删除统一用户认证登录数据表DROP TABLE IF EXISTS ODS_TYYHRZDLSJ_SXXT;-- 在B服务器上执行以下SQL创建目标表-- 实习基础数据子类表CREATE TABLE IF NOT EXISTS ODS_SXJCSX (`ZJSJWYXBS` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`XXDM` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,`XH` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,`XSXM` varchar(108) COLLATE utf8mb4_general_ci DEFAULT NULL,`ZYH` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,`ZYMC` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL,`BJMC` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL,`XZM` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,`XQM` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXSFKS` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXSFJS` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXQYHYLBM` varchar(4) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXNR` text COLLATE utf8mb4_general_ci,`SFDK` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXAPM` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXXSM` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXSC` decimal(5,0) DEFAULT NULL,`SXCJ` decimal(20,1) DEFAULT NULL,`SXKSRQ` varchar(8) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXJSRQ` varchar(8) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXQYMC` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXDDSZSJGBM` varchar(6) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXDDSZSJGMC` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXDDSZSHJGBM` varchar(6) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXDDSZSHJGMC` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL,`XNZDJSGH` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,`XNZDJSXM` varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL,`NZDJSDH` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,`QYZMZDRYXM` varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL,`QYZMZDRYDH` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,`ZFSXXSSJBC` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,`XJJDZXDH` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,`SFQDSFXY` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`SFKSSX` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`SFFGWSX` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`RXNF` varchar(4) COLLATE utf8mb4_general_ci DEFAULT NULL,`SJCJSJ` varchar(15) COLLATE utf8mb4_general_ci DEFAULT NULL)DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 实习保险购买情况表CREATE TABLE IF NOT EXISTS ODS_SXBXGMQKSJ (`ZJSJWYXBS` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`XXDM` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,`XH` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,`XSXM` varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL,`BXXZMC` varchar(120) COLLATE utf8mb4_general_ci DEFAULT NULL,`BDH` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL,`BXFCZFMC` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,`BXGMRQ` varchar(7) COLLATE utf8mb4_general_ci DEFAULT NULL,`BXGMFM` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,`GMBXZLM` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,`SJCJSJ` varchar(15) COLLATE utf8mb4_general_ci DEFAULT NULL)DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 实习报告记录表CREATE TABLE IF NOT EXISTS ODS_SXBGJLSJ (`ZJSJWYXBS` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`XXDM` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,`XH` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL,`XSXM` varchar(108) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXQYMC` varchar(180) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXGWMC` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXZDJS` varchar(36) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXBGLBM` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXBGNRZY` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXBGNR` varchar(999) COLLATE utf8mb4_general_ci DEFAULT NULL,`SXBGTJRQ` varchar(8) COLLATE utf8mb4_general_ci DEFAULT NULL,`JSPYZTM` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,`SJCJSJ` varchar(15) COLLATE utf8mb4_general_ci DEFAULT NULL)DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 统一用户认证登录数据表CREATE TABLE IF NOT EXISTS ODS_TYYHRZDLSJ_SXXT (`ZJSJWYXBS` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL,`XXDM` varchar(10) COLLATE utf8mb4_general_ci DEFAULT NULL,`DLZH` varchar(30) COLLATE utf8mb4_general_ci DEFAULT NULL,`JS` varchar(60) COLLATE utf8mb4_general_ci DEFAULT NULL,`SZBMMC` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL,`DLSJ` varchar(15) COLLATE utf8mb4_general_ci DEFAULT NULL,`DLIP` varchar(128) COLLATE utf8mb4_general_ci DEFAULT NULL,`ZHZTM` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL,`SJCJ` varchar(15) COLLATE utf8mb4_general_ci DEFAULT NULL)DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 在A服务器上执行以下SQL创建FEDERATED表-- 实习基础数据FEDERATED表CREATE TABLE IF NOT EXISTS federated_intern_basic_data (ZJSJWYXBS VARCHAR(32),XXDM VARCHAR(10),XH VARCHAR(20),XSXM VARCHAR(108),ZYH VARCHAR(64),ZYMC VARCHAR(60),BJMC VARCHAR(60),XZM VARCHAR(2),XQM VARCHAR(1),SXSFKS VARCHAR(1),SXSFJS VARCHAR(1),SXQYHYLBM VARCHAR(4),SXNR TEXT(2000),SFDK VARCHAR(1),SXAPM VARCHAR(2),SXXSM VARCHAR(2),SXSC DECIMAL(5,0),SXCJ DECIMAL(20,1),SXKSRQ VARCHAR(8),SXJSRQ VARCHAR(8),SXQYMC VARCHAR(200),SXDDSZSJGBM VARCHAR(6),SXDDSZSJGMC VARCHAR(60),SXDDSZSHJGBM VARCHAR(6),SXDDSZSHJGMC VARCHAR(60),XNZDJSGH VARCHAR(20),XNZDJSXM VARCHAR(36),NZDJSDH VARCHAR(30),QYZMZDRYXM VARCHAR(36),QYZMZDRYDH VARCHAR(30),ZFSXXSSJBC VARCHAR(10),XJJDZXDH VARCHAR(30),SFQDSFXY VARCHAR(1),SFKSSX VARCHAR(1),SFFGWSX VARCHAR(1),RXNF VARCHAR(4),SJCJSJ VARCHAR(15)) ENGINE=FEDERATEDCONNECTION='mysql://data_sync:L$7cx&6W*7zJ##po@202.207.122.44:3306/cpoc_sync/ODS_SXJCSJ'DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 实习保险购买情况FEDERATED表CREATE TABLE IF NOT EXISTS federated_intern_insurance (ZJSJWYXBS VARCHAR(32),XXDM VARCHAR(10),XH VARCHAR(20),XSXM VARCHAR(36),BXXZMC VARCHAR(120),BDH VARCHAR(64),BXFCZFMC VARCHAR(200),BXGMRQ VARCHAR(7),BXGMFM VARCHAR(2),GMBXZLM VARCHAR(2),SJCJSJ VARCHAR(15)) ENGINE=FEDERATEDCONNECTION='mysql://data_sync:L$7cx&6W*7zJ##po@202.207.122.44:3306/cpoc_sync/ODS_SXBXGMQKSJ'DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 实习报告记录FEDERATED表CREATE TABLE IF NOT EXISTS federated_intern_report (ZJSJWYXBS VARCHAR(32),XXDM VARCHAR(10),XH VARCHAR(20),XSXM VARCHAR(108),SXQYMC VARCHAR(180),SXGWMC VARCHAR(100),SXZDJS VARCHAR(36),SXBGLBM VARCHAR(2),SXBGNRZY VARCHAR(500),SXBGNR VARCHAR(999),SXBGTJRQ VARCHAR(8),JSPYZTM VARCHAR(1),SJCJSJ VARCHAR(15)) ENGINE=FEDERATEDCONNECTION='mysql://data_sync:L$7cx&6W*7zJ##po@202.207.122.44:3306/cpoc_sync/ODS_SXBGJLSJ'DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 统一用户认证登录数据FEDERATED表CREATE TABLE IF NOT EXISTS federated_user_auth_data (ZJSJWYXBS VARCHAR(32),XXDM VARCHAR(10),DLZH VARCHAR(30),JS VARCHAR(60),SZBMMC VARCHAR(200),DLSJ VARCHAR(15),DLIP VARCHAR(128),ZHZTM VARCHAR(2),SJCJ VARCHAR(15)) ENGINE=FEDERATEDCONNECTION='mysql://data_sync:L$7cx&6W*7zJ##po@202.207.122.44:3306/cpoc_sync/ODS_TYYHRZDLSJ_SXXT'DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;-- 在A服务器创建同步存储过程DELIMITER //-- 同步实习基础数据CREATE DEFINER=`root`@`%` PROCEDURE `sync_intern_basic_data`()BEGIN-- 新增字符集设置SET NAMES 'utf8mb4';SET CHARACTER SET utf8mb4;-- 先清空远程表TRUNCATE TABLE federated_intern_basic_data;-- 插入新数据INSERT INTO federated_intern_basic_dataWITH LatestInternshipApplication AS (SELECT stu_id, stage_id,is_matching,in_unit,province,city,guidance_teacher,guidance_phone,recruit_way,wsch_tea_name,phone,salary_ship,school_hotline,is_tripartitep,is_cross,ROW_NUMBER() OVER (PARTITION BY stu_id ORDER BY create_time DESC) AS rnFROM zc_internship_applicationWHERE process = 6),LatestWeek AS (SELECTss.user_id,ROUND(IFNULL(ws.week_score, 0), 2) AS 周记成绩,ROUND(IFNULL(r.report_score, 0), 2) AS 实习报告成绩,ROUND(IFNULL(sc.company_one, 0), 2) AS 企业评分,ROUND(IFNULL(sc.company_one, 0) * 0.7 +(IFNULL(ws.week_score, 0) * 0.6 + IFNULL(r.report_score, 0) * 0.4) * 0.3,2) AS average_evaluation,ss.stage_idFROMzc_student_info ssINNER JOIN zc_major_info m ON ss.major_id = m.idINNER JOIN zc_teacher_info tea ON ss.sch_teacher = tea.idINNER JOIN zc_pastern zp ON ss.pastern_id = zp.idLEFT JOIN (SELECTsi.id,si.stu_name,w.stage_id,IF(SUM(CASEWHEN p.teacher_evaluation REGEXP '^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$'THEN CAST(p.teacher_evaluation AS DECIMAL(10,2))ELSE 0END) / 20 > 100,100,SUM(CASEWHEN p.teacher_evaluation REGEXP '^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$'THEN CAST(p.teacher_evaluation AS DECIMAL(10,2))ELSE 0END) / 20) AS week_scoreFROMzc_week wINNER JOIN zc_process p ON w.id = p.day_id AND p.state = 0INNER JOIN zc_student_info si ON w.create_by = si.user_idINNER JOIN zc_internship_stage i ON w.stage_id = i.idWHEREi.is_end = '0' AND i.del_flag = '0'GROUP BYsi.id, si.stu_name, w.stage_id) ws ON ss.id = ws.idLEFT JOIN (SELECTir.student_user_id AS stu_id,ir.stage_id,ir.evaluate_score AS report_scoreFROMzc_internship_report irINNER JOIN zc_internship_stage i ON ir.stage_id = i.idWHEREir.evaluate_state = 2GROUP BYir.student_user_id, ir.stage_id, ir.evaluate_score) r ON ss.user_id = r.stu_idLEFT JOIN zc_student_score sc ON ss.id = sc.stu_idINNER JOIN zc_internship_stage i ON ss.stage_id = i.id AND i.is_end = '0' AND i.del_flag = '0')SELECT DISTINCTMD5(s.id) AS ZJSJWYXBS,'4113013397' AS XXDM,s.stu_num AS XH,s.stu_name AS XSXM,'' AS ZYH,m.major_name AS ZYMC,c.class_name AS BJMC,'' AS XZM,'' AS XQM,CASEWHEN NOW() >= i.internship_start_time THEN 1ELSE 0END AS SXSFKS,CASEWHEN NOW() > i.internship_end_time THEN 1ELSE 0END AS SXSFJS,'' AS SXQYHYLBM,i.stage_name AS SXNR,COALESCE(la.is_matching, 0) AS SFDK,CASE WHEN la.recruit_way = 0 THEN 2 ELSE la.recruit_way END AS SXAPM,'1' AS SXXSM,COALESCE(CEILING(DATEDIFF(CURDATE(), i.internship_start_time) / 7.0), 0) AS SXSC,COALESCE(lw.average_evaluation, 0) AS SXCJ,DATE_FORMAT(i.internship_start_time, '%Y%m%d') AS SXKSRQ,DATE_FORMAT(i.internship_end_time, '%Y%m%d') AS SXJSRQ,la.in_unit AS SXQYMC,'' AS SXDDSZSJGBM,la.province AS SXDDSZSJGMC,'' AS SXDDSZSHJGBM,la.city AS SXDDSZSHJGMC,'' AS XNZDJSGH,la.guidance_teacher AS XNZDJSXM,la.guidance_phone AS NZDJSDH,la.wsch_tea_name AS QYZMZDRYXM,la.phone AS QYZMZDRYDH,CASEWHEN la.salary_ship IS NULL THEN 0WHEN la.salary_ship = '' THEN 0WHEN la.salary_ship REGEXP '^[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)$' THENCAST(la.salary_ship AS DECIMAL(10,2))ELSE 0END AS ZFSXXSSJBC,la.school_hotline AS XJJDZXDH,la.is_tripartitep AS SFQDSFXY,la.is_cross AS SFKSSX,'' AS SFFGWSX,g.grade_name AS RXNF,DATE_FORMAT(NOW(), '%Y%m%d% %H%i%s') AS SJCJSJFROMzc_student_info sLEFT JOIN zc_grade_info g ON s.grade_id = g.idLEFT JOIN zc_pastern p ON s.pastern_id = p.idLEFT JOIN zc_major_info m ON s.major_id = m.idLEFT JOIN zc_class c ON s.class_id = c.idLEFT JOIN zc_internship_stage i ON s.stage_id = i.idLEFT JOIN LatestInternshipApplication la ON s.id = la.stu_id AND la.rn = 1 AND la.stage_id = i.idLEFT JOIN LatestWeek lw ON lw.user_id = s.user_id AND lw.stage_id = i.idWHERE s.del_flag = 0 AND i.is_end = '0' AND i.del_flag = '0'ORDER BY p.pastern_name, g.grade_name, m.major_name, c.class_name, s.stu_num;SELECT CONCAT('实习基础数据同步完成,影响行数: ', ROW_COUNT()) AS message;END //-- 同步实习保险购买情况CREATE PROCEDURE sync_intern_insurance()BEGIN-- 新增字符集设置SET NAMES 'utf8mb4';SET CHARACTER SET utf8mb4;TRUNCATE TABLE federated_intern_insurance;INSERT INTO federated_intern_insuranceWITH LatestInternshipApplication AS (SELECT stu_id, stage_id,insurance_type,policy,insurance_bution,ROW_NUMBER() OVER (PARTITION BY stu_id ORDER BY create_time DESC) AS rnFROM zc_internship_application)SELECT DISTINCTMD5(s.id) AS ZJSJWYXBS,'4113013397' AS XXDM,s.stu_num AS XH,s.stu_name AS XSXM,la.insurance_type AS BXXZMC,la.policy AS BDH,la.insurance_bution AS BXFCZFMC,'' AS BXGMRQ,'' AS BXGMFM,'' AS GMBXZLM,DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') AS SJCJSJFROMzc_student_info sLEFT JOIN zc_grade_info g ON s.grade_id = g.idLEFT JOIN zc_pastern p ON s.pastern_id = p.idLEFT JOIN zc_major_info m ON s.major_id = m.idLEFT JOIN zc_class c ON s.class_id = c.idLEFT JOIN zc_internship_stage i ON s.stage_id = i.idLEFT JOIN LatestInternshipApplication la ON s.id = la.stu_id AND la.rn = 1 AND la.stage_id = i.idWHERE s.del_flag = 0 AND i.is_end = '0' AND i.del_flag = '0'ORDER BY p.pastern_name, g.grade_name, m.major_name, c.class_name, s.stu_num;SELECT CONCAT('实习保险数据同步完成,影响行数: ', ROW_COUNT()) AS message;END //-- 同步实习报告记录CREATE PROCEDURE sync_intern_report()BEGIN-- 新增字符集设置SET NAMES 'utf8mb4';SET CHARACTER SET utf8mb4;TRUNCATE TABLE federated_intern_report;INSERT INTO federated_intern_reportWITH LatestInternshipApplication AS (SELECT stu_id, stage_id, in_unit, internship, guidance_teacher, guidance_phone,ROW_NUMBER() OVER (PARTITION BY stu_id ORDER BY create_time DESC) AS rnFROM zc_internship_applicationWHERE process = 6),LatestWeek AS (SELECT zw.id,zw.create_by, zw.content, DATE_FORMAT(zw.create_time, '%Y%m%d') AS create_time, zp.state, zw.title,zw.stage_id,zp.teacher_comments,zp.teacher_evaluationFROM zc_student_info stINNER JOIN zc_week zw ON st.user_id = zw.create_by and zw.state != 1INNER JOIN zc_internship_stage sta ON st.stage_id = sta.idLEFT JOIN zc_process zp ON zp.day_id = zw.idWHERE st.del_flag = '0' AND sta.is_end = '0' AND sta.del_flag = '0')SELECTMD5(s.id) AS ZJSJWYXBS,'4113013397' AS XXDM,s.stu_num AS XH,s.stu_name AS XSXM,la.in_unit AS SXQYMC,la.internship AS SXGWMC,la.guidance_teacher AS SXZDJS,'1' AS SXBGLBM,lw.content AS SXBGNRZY,lw.content AS SXBGNR,DATE_FORMAT(lw.create_time, '%Y%m%d') AS SXBGTJRQ,CASE lw.state WHEN 0 THEN '1' WHEN 2 THEN '2' ELSE '2' END AS JSPYZTM,DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') AS SJCJSJFROMzc_student_info sLEFT JOIN zc_grade_info g ON s.grade_id = g.idJOIN zc_pastern p ON s.pastern_id = p.idLEFT JOIN zc_major_info m ON s.major_id = m.idLEFT JOIN zc_class c ON s.class_id = c.idINNER JOIN zc_internship_stage i ON s.stage_id = i.idINNER JOIN LatestInternshipApplication la ON s.id = la.stu_id AND la.stage_id = i.idINNER JOIN LatestWeek lw ON lw.create_by = s.user_idWHERE s.del_flag = 0 AND i.is_end = '0' AND i.del_flag = '0'ORDER BY p.pastern_name, g.grade_name, m.major_name, c.class_name, s.stu_num, la.in_unit, la.guidance_teacher, la.internship, i.stage_name;SELECT CONCAT('实习报告数据同步完成,影响行数: ', ROW_COUNT()) AS message;END //-- 同步统一用户认证登录数据CREATE PROCEDURE sync_user_auth_data()BEGIN-- 新增字符集设置SET NAMES 'utf8mb4';SET CHARACTER SET utf8mb4;TRUNCATE TABLE federated_user_auth_data;INSERT INTO federated_user_auth_dataWITH LatestSysUserRole AS (SELECTsu.id,GROUP_CONCAT(sr.role_name ORDER BY sr.role_name ASC SEPARATOR ',') AS role_namesFROMsys_user suJOINsys_user_role sur ON su.id = sur.user_idJOINsys_role sr ON sur.role_id = sr.idGROUP BYsu.id)SELECT distinctMD5(su.id) AS ZJSJWYXBS,'4113013397' AS XXDM,sl.username AS DLZH,ls.role_names AS JS,zd.dept_name AS SZBMMC,DATE_FORMAT(sl.create_time, '%Y%m%d% %H%i%s') AS DLSJ,sl.ip AS DLIP,1 AS ZHZTM,DATE_FORMAT(NOW(), '%Y%m%d% %H%i%s') AS SJCJFROM sys_log slJOINsys_user su ON sl.userid = su.username AND sl.userid != 'admin'JOINLatestSysUserRole ls ON su.id = ls.idLEFT JOINzc_teacher_info zti ON su.id = zti.user_idLEFT JOINzc_depart zd ON zd.id = zti.departwhere sl.log_type = 1order by sl.create_time desc;SELECT CONCAT('用户认证数据同步完成,影响行数: ', ROW_COUNT()) AS message;END //-- 创建总控存储过程,同步所有数据CREATE PROCEDURE sync_all_data_to_server_b()BEGINDECLARE exit handler for sqlexceptionBEGINGET DIAGNOSTICS CONDITION 1 @sqlstate = RETURNED_SQLSTATE,@errno = MYSQL_ERRNO, @text = MESSAGE_TEXT;SELECT CONCAT('Error occurred: ', @errno, ' (', @sqlstate, '): ', @text) AS error_message;ROLLBACK;END;START TRANSACTION;CALL sync_intern_basic_data();CALL sync_intern_insurance();CALL sync_intern_report();CALL sync_user_auth_data();COMMIT;SELECT '所有数据同步完成' AS message;END //DELIMITER ;