sync_all_mysql.sql 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. -- ==========================================
  2. -- 统一身份认证中间库 - MySQL 目标库同步 SQL
  3. -- 适用:SOURCE 与 TARGET 均为 MySQL(研发同库测试)
  4. -- 使用方式:由 sync_user_to_sso.sh 调用,可传入增量时间条件
  5. -- ==========================================
  6. SET NAMES utf8mb4;
  7. -- 1. 院系所单位 GXXX_YXSDWJBSJZL <- sys_dept
  8. INSERT INTO GXXX_YXSDWJBSJZL (
  9. dwh, dwmc, lsdwh, dwyxbs, zhgxsj, scbz
  10. )
  11. SELECT
  12. RIGHT(CAST(d.dept_id AS CHAR), 10) AS dwh,
  13. LEFT(IFNULL(d.dept_name, ''), 60) AS dwmc,
  14. CASE
  15. WHEN d.parent_id IS NULL OR d.parent_id = 0 THEN NULL
  16. ELSE RIGHT(CAST(d.parent_id AS CHAR), 10)
  17. END AS lsdwh,
  18. CASE WHEN d.status = '0' AND d.del_flag = '0' THEN '1' ELSE '0' END AS dwyxbs,
  19. DATE_FORMAT(IFNULL(d.update_time, d.create_time), '%Y%m%d%H%i%s') AS zhgxsj,
  20. CASE WHEN d.del_flag = '1' THEN 'y' ELSE 'n' END AS scbz
  21. FROM sys_dept d
  22. WHERE 1=1
  23. /*INCREMENTAL_FILTER_DEPT*/
  24. ON DUPLICATE KEY UPDATE
  25. dwmc = VALUES(dwmc),
  26. lsdwh = VALUES(lsdwh),
  27. dwyxbs = VALUES(dwyxbs),
  28. zhgxsj = VALUES(zhgxsj),
  29. scbz = VALUES(scbz);
  30. -- 2. 教职工基础 GXJG_JZGJCSJZLB <- sys_user (account_type=1)
  31. INSERT INTO GXJG_JZGJCSJZLB (
  32. gh, dwh, xm, xbm, dqztm, zhgxsj, scbz
  33. )
  34. SELECT
  35. LEFT(u.user_name, 20) AS gh,
  36. RIGHT(CAST(IFNULL(u.dept_id, 0) AS CHAR), 10) AS dwh,
  37. LEFT(IFNULL(u.nick_name, u.user_name), 36) AS xm,
  38. CASE u.sex WHEN '0' THEN '1' WHEN '1' THEN '2' ELSE '0' END AS xbm,
  39. CASE WHEN u.status = '0' THEN '11' ELSE '99' END AS dqztm,
  40. DATE_FORMAT(IFNULL(u.update_time, u.create_time), '%Y%m%d%H%i%s') AS zhgxsj,
  41. CASE WHEN u.del_flag = '1' THEN 'y' ELSE 'n' END AS scbz
  42. FROM sys_user u
  43. WHERE u.account_type = '1'
  44. /*INCREMENTAL_FILTER_TEACHER*/
  45. ON DUPLICATE KEY UPDATE
  46. dwh = VALUES(dwh),
  47. xm = VALUES(xm),
  48. xbm = VALUES(xbm),
  49. dqztm = VALUES(dqztm),
  50. zhgxsj = VALUES(zhgxsj),
  51. scbz = VALUES(scbz);
  52. -- 3. 教职工通讯 GXJG_GRTXFSZL <- sys_user (account_type=1)
  53. INSERT INTO GXJG_GRTXFSZL (
  54. id, gh, yddh, dzxx, zhgxsj, scbz
  55. )
  56. SELECT
  57. LEFT(u.user_name, 48) AS id,
  58. LEFT(u.user_name, 20) AS gh,
  59. LEFT(NULLIF(u.phonenumber, ''), 30) AS yddh,
  60. LEFT(NULLIF(u.email, ''), 40) AS dzxx,
  61. DATE_FORMAT(IFNULL(u.update_time, u.create_time), '%Y%m%d%H%i%s') AS zhgxsj,
  62. CASE WHEN u.del_flag = '1' THEN 'y' ELSE 'n' END AS scbz
  63. FROM sys_user u
  64. WHERE u.account_type = '1'
  65. /*INCREMENTAL_FILTER_TEACHER*/
  66. ON DUPLICATE KEY UPDATE
  67. gh = VALUES(gh),
  68. yddh = VALUES(yddh),
  69. dzxx = VALUES(dzxx),
  70. zhgxsj = VALUES(zhgxsj),
  71. scbz = VALUES(scbz);
  72. -- 4. 学生基础 GXXS_XSJBSJZL <- xg_student_msg
  73. INSERT INTO GXXS_XSJBSJZL (
  74. xh, xm, ywxm, cym, xbm, csrq, jg, sfzjlxm, sfzjh, zzmmm, xxm,
  75. sfdszn, zhgxsj, scbz, dwh, szbh, sfzx, sfyby
  76. )
  77. SELECT
  78. LEFT(s.student_no, 20) AS xh,
  79. LEFT(IFNULL(s.name, ''), 60) AS xm,
  80. LEFT(IFNULL(s.name_english, ''), 60) AS ywxm,
  81. LEFT(IFNULL(s.former_name, ''), 60) AS cym,
  82. CASE s.gender WHEN '0' THEN '1' WHEN '1' THEN '2' ELSE '0' END AS xbm,
  83. DATE_FORMAT(s.birth_date, '%Y%m%d') AS csrq,
  84. LEFT(IFNULL(s.native_place, ''), 60) AS jg,
  85. '1' AS sfzjlxm,
  86. LEFT(IFNULL(s.id_card, ''), 20) AS sfzjh,
  87. LEFT(IFNULL(s.political_status, ''), 2) AS zzmmm,
  88. LEFT(IFNULL(s.blood_type, ''), 30) AS xxm,
  89. CASE WHEN s.is_single_child = 1 THEN '1' ELSE '0' END AS sfdszn,
  90. DATE_FORMAT(IFNULL(s.update_time, s.create_time), '%Y%m%d%H%i%s') AS zhgxsj,
  91. CASE WHEN s.deleted = 1 THEN 'y' ELSE 'n' END AS scbz,
  92. LEFT(IFNULL(s.college_id, '0'), 20) AS dwh,
  93. LEFT(IFNULL(c.class_code, IFNULL(s.class_id, '')), 20) AS szbh,
  94. CASE WHEN s.student_status IN ('1', '2', '3') THEN '1' ELSE '0' END AS sfzx,
  95. CASE WHEN s.student_status = '5' THEN '1' ELSE '0' END AS sfyby
  96. FROM xg_student_msg s
  97. LEFT JOIN xg_class_msg c ON c.id = s.class_id AND c.deleted = 0
  98. WHERE 1=1
  99. /*INCREMENTAL_FILTER_STUDENT*/
  100. ON DUPLICATE KEY UPDATE
  101. xm = VALUES(xm),
  102. ywxm = VALUES(ywxm),
  103. cym = VALUES(cym),
  104. xbm = VALUES(xbm),
  105. csrq = VALUES(csrq),
  106. jg = VALUES(jg),
  107. sfzjh = VALUES(sfzjh),
  108. zzmmm = VALUES(zzmmm),
  109. xxm = VALUES(xxm),
  110. sfdszn = VALUES(sfdszn),
  111. zhgxsj = VALUES(zhgxsj),
  112. scbz = VALUES(scbz),
  113. dwh = VALUES(dwh),
  114. szbh = VALUES(szbh),
  115. sfzx = VALUES(sfzx),
  116. sfyby = VALUES(sfyby);
  117. -- 5. 学生通讯 GXXS_GRTXZL <- xg_student_msg
  118. INSERT INTO GXXS_GRTXZL (
  119. xh, yzbm, txdz, yddh, dzxx, jstxh, zhgxsj, scbz
  120. )
  121. SELECT
  122. LEFT(s.student_no, 20) AS xh,
  123. LEFT(IFNULL(s.postal_code, ''), 6) AS yzbm,
  124. LEFT(IFNULL(NULLIF(s.current_address, ''), s.home_address), 180) AS txdz,
  125. LEFT(IFNULL(s.phone, ''), 30) AS yddh,
  126. LEFT(IFNULL(s.email, ''), 40) AS dzxx,
  127. LEFT(IFNULL(NULLIF(s.qq, ''), s.wechat), 40) AS jstxh,
  128. DATE_FORMAT(IFNULL(s.update_time, s.create_time), '%Y%m%d%H%i%s') AS zhgxsj,
  129. CASE WHEN s.deleted = 1 THEN 'y' ELSE 'n' END AS scbz
  130. FROM xg_student_msg s
  131. WHERE 1=1
  132. /*INCREMENTAL_FILTER_STUDENT*/
  133. ON DUPLICATE KEY UPDATE
  134. yzbm = VALUES(yzbm),
  135. txdz = VALUES(txdz),
  136. yddh = VALUES(yddh),
  137. dzxx = VALUES(dzxx),
  138. jstxh = VALUES(jstxh),
  139. zhgxsj = VALUES(zhgxsj),
  140. scbz = VALUES(scbz);