刘洪青 | fbf4923 | 2020-09-29 17:48:43 +0800 | [diff] [blame] | 1 | |
| 2 | /* |
| 3 | * 若通过交换同步组织机构、帐号数据的,须执行该数据库脚本 |
| 4 | */ |
| 5 | |
| 6 | use user; |
| 7 | |
| 8 | /* |
| 9 | |
| 10 | delete from TB_B_ACCOUNT_ORGANIZATION where ADD_ACCOUNT='trans'; |
| 11 | |
| 12 | delete from TB_B_SAFETY where ADD_ACCOUNT='trans'; |
| 13 | delete from TB_B_ACCOUNT where ADD_ACCOUNT='trans'; |
| 14 | delete from TB_B_USER where ADD_ACCOUNT='trans'; |
| 15 | |
| 16 | delete from TMP_ACCOUNT_TRANS; |
| 17 | |
| 18 | update TMP_ACCOUNT_ORIGIN set UID=UID; |
| 19 | */ |
| 20 | |
| 21 | |
| 22 | DROP TRIGGER IF EXISTS after_update_organization_origin; |
| 23 | |
| 24 | delimiter // |
| 25 | create trigger after_update_organization_origin after update on TMP_ORGANIZATION_ORIGIN for each row |
| 26 | begin |
| 27 | declare ID1 varchar(100); |
| 28 | declare ID2 varchar(100); |
| 29 | |
| 30 | -- new 代表 表中新增的数据 |
| 31 | set ID1 = (select ID from TMP_ORGANIZATION_TRANS |
| 32 | where ((ID is null and new.ID is null) or ID=new.ID) |
| 33 | and ((PARENT_ORGANIZATION_ID is null and new.PARENT_ORGANIZATION_ID is null) or PARENT_ORGANIZATION_ID=new.PARENT_ORGANIZATION_ID) |
| 34 | and ((CODE is null and new.CODE is null) or CODE=new.CODE) |
| 35 | and ((NAME is null and new.NAME is null) or NAME=new.NAME) |
| 36 | and ((DESCRIPTION is null and new.DESCRIPTION is null) or DESCRIPTION=new.DESCRIPTION) |
| 37 | and ((TYPE_ID is null and new.TYPE_ID is null) or TYPE_ID=new.TYPE_ID) |
| 38 | and ((STATE is null and new.STATE is null) or STATE=new.STATE) |
| 39 | and ((ENABLE is null and new.ENABLE is null) or ENABLE=new.ENABLE) |
| 40 | and ((IS_DATA_CENTER is null and new.IS_DATA_CENTER is null) or IS_DATA_CENTER=new.IS_DATA_CENTER) |
| 41 | ); |
| 42 | -- into @ID1; |
| 43 | |
| 44 | if ID1 is null then |
| 45 | set ID2 = (select ID from TMP_ORGANIZATION_TRANS where ID=new.ID); -- into @ID2; |
| 46 | |
| 47 | if ID2 is null then |
| 48 | insert into TMP_ORGANIZATION_TRANS(TRANS_STATUS, TRANS_TIME, PROC_STATUS, PROC_TIME, |
| 49 | ID, PARENT_ORGANIZATION_ID, |
| 50 | CODE, NAME, DESCRIPTION, |
| 51 | TYPE_ID, |
| 52 | STATE, ENABLE, |
| 53 | IS_DATA_CENTER |
| 54 | ) |
| 55 | values ('1', now(), '0', null, |
| 56 | new.ID, new.PARENT_ORGANIZATION_ID, |
| 57 | new.CODE, new.NAME, new.DESCRIPTION, |
| 58 | new.TYPE_ID, |
| 59 | new.STATE, new.ENABLE, |
| 60 | new.IS_DATA_CENTER |
| 61 | ) |
| 62 | ; |
| 63 | |
| 64 | else |
| 65 | update TMP_ORGANIZATION_TRANS set |
| 66 | TRANS_STATUS='2', |
| 67 | TRANS_TIME=now(), |
| 68 | PROC_STATUS='0', |
| 69 | PARENT_ORGANIZATION_ID=new.PARENT_ORGANIZATION_ID, |
| 70 | CODE=new.CODE, |
| 71 | NAME=new.NAME, |
| 72 | DESCRIPTION=new.DESCRIPTION, |
| 73 | TYPE_ID=new.TYPE_ID, |
| 74 | STATE=new.STATE, |
| 75 | ENABLE=new.ENABLE, |
| 76 | IS_DATA_CENTER=new.IS_DATA_CENTER |
| 77 | where ID=new.ID |
| 78 | ; |
| 79 | |
| 80 | end if; |
| 81 | |
| 82 | else |
| 83 | |
| 84 | -- 如果数据没变化,但存在记录,且被处理,则标记未 不更新、不处理 |
| 85 | update TMP_ORGANIZATION_TRANS set |
| 86 | TRANS_STATUS='0', |
| 87 | TRANS_TIME=now(), |
| 88 | PROC_STATUS='0' |
| 89 | where ID=new.ID |
| 90 | and PROC_RESULT!='0' |
| 91 | ; |
| 92 | |
| 93 | end if; |
| 94 | |
| 95 | end // |
| 96 | delimiter ; |
| 97 | |
| 98 | |
| 99 | DROP TRIGGER IF EXISTS after_update_account_origin; |
| 100 | |
| 101 | delimiter // |
| 102 | create trigger after_update_account_origin after update on TMP_ACCOUNT_ORIGIN for each row |
| 103 | begin |
| 104 | declare ID1 varchar(100); |
| 105 | declare ID2 varchar(100); |
| 106 | |
| 107 | -- new 代表 表中新增的数据 |
| 108 | set ID1 = (select ID from TMP_ACCOUNT_TRANS |
| 109 | where ((ID is null and new.ID is null) or ID=new.ID) |
| 110 | and ((UID is null and new.UID is null) or UID=new.UID) |
| 111 | and ((NAME is null and new.NAME is null) or NAME=new.NAME) |
| 112 | and ((NAME_SPELLING is null and new.NAME_SPELLING is null) or NAME_SPELLING=new.NAME_SPELLING) |
| 113 | and ((FULL_NAME_SPELLING is null and new.FULL_NAME_SPELLING is null) or FULL_NAME_SPELLING=new.FULL_NAME_SPELLING) |
| 114 | and ((CERTIFICATE_TYPE_ID is null and new.CERTIFICATE_TYPE_ID is null) or CERTIFICATE_TYPE_ID=new.CERTIFICATE_TYPE_ID) |
| 115 | and ((CERTIFICATE_NUMBER is null and new.CERTIFICATE_NUMBER is null) or CERTIFICATE_NUMBER=new.CERTIFICATE_NUMBER) |
| 116 | and ((PHONE_NUMBER is null and new.PHONE_NUMBER is null) or PHONE_NUMBER=new.PHONE_NUMBER) |
| 117 | and ((EMAIL is null and new.EMAIL is null) or EMAIL=new.EMAIL) |
| 118 | and ((IMAGE_URL is null and new.IMAGE_URL is null) or IMAGE_URL=new.IMAGE_URL) |
| 119 | and ((GENDER_ID is null and new.GENDER_ID is null) or GENDER_ID=new.GENDER_ID) |
| 120 | and ((NATION_ID is null and new.NATION_ID is null) or NATION_ID=new.NATION_ID) |
| 121 | and ((COUNTRY_ID is null and new.COUNTRY_ID is null) or COUNTRY_ID=new.COUNTRY_ID) |
| 122 | and ((ADDRESS_ID is null and new.ADDRESS_ID is null) or ADDRESS_ID=new.ADDRESS_ID) |
| 123 | and ((ACCOUNT_NAME is null and new.ACCOUNT_NAME is null) or ACCOUNT_NAME=new.ACCOUNT_NAME) |
| 124 | and ((ACCOUNT_EXPIRY_DATE is null and new.ACCOUNT_EXPIRY_DATE is null) or ACCOUNT_EXPIRY_DATE=new.ACCOUNT_EXPIRY_DATE) |
| 125 | and ((ORGANIZATION_ID is null and new.ORGANIZATION_ID is null) or ORGANIZATION_ID=new.ORGANIZATION_ID) |
| 126 | and ((IDENTITY_TYPE_ID is null and new.IDENTITY_TYPE_ID is null) or IDENTITY_TYPE_ID=new.IDENTITY_TYPE_ID) |
| 127 | and ((ACTIVATION is null and new.ACTIVATION is null) or ACTIVATION=new.ACTIVATION) |
| 128 | and ((STATE is null and new.STATE is null) or STATE=new.STATE) |
| 129 | and ((IS_DATA_CENTER is null and new.IS_DATA_CENTER is null) or IS_DATA_CENTER=new.IS_DATA_CENTER) |
| 130 | ); |
| 131 | -- into @ID1; |
| 132 | |
| 133 | if ID1 is null then |
| 134 | set ID2 = (select ID from TMP_ACCOUNT_TRANS where ID=new.ID); -- into @ID2; |
| 135 | |
| 136 | if ID2 is null then |
| 137 | insert into TMP_ACCOUNT_TRANS(TRANS_STATUS, TRANS_TIME, PROC_STATUS, PROC_TIME, |
| 138 | ID, UID, |
| 139 | NAME, NAME_SPELLING, FULL_NAME_SPELLING, |
| 140 | CERTIFICATE_TYPE_ID, CERTIFICATE_NUMBER, |
| 141 | PHONE_NUMBER, EMAIL, |
| 142 | IMAGE_URL, |
| 143 | GENDER_ID, NATION_ID, COUNTRY_ID, ADDRESS_ID, |
| 144 | ACCOUNT_NAME, ACCOUNT_EXPIRY_DATE, ORGANIZATION_ID, IDENTITY_TYPE_ID, |
| 145 | ACTIVATION, STATE, |
| 146 | IS_DATA_CENTER |
| 147 | ) |
| 148 | values ('1', now(), '0', null, |
| 149 | new.ID, new.UID, |
| 150 | new.NAME, new.NAME_SPELLING, new.FULL_NAME_SPELLING, |
| 151 | new.CERTIFICATE_TYPE_ID, new.CERTIFICATE_NUMBER, |
| 152 | new.PHONE_NUMBER, new.EMAIL, |
| 153 | new.IMAGE_URL, |
| 154 | new.GENDER_ID, new.NATION_ID, new.COUNTRY_ID, new.ADDRESS_ID, |
| 155 | new.ACCOUNT_NAME, new.ACCOUNT_EXPIRY_DATE, new.ORGANIZATION_ID, new.IDENTITY_TYPE_ID, |
| 156 | new.ACTIVATION, new.STATE, |
| 157 | new.IS_DATA_CENTER |
| 158 | ) |
| 159 | ; |
| 160 | |
| 161 | else |
| 162 | update TMP_ACCOUNT_TRANS set |
| 163 | TRANS_STATUS='2', |
| 164 | TRANS_TIME=now(), |
| 165 | PROC_STATUS='0', |
| 166 | UID=new.UID, |
| 167 | NAME=new.NAME, |
| 168 | NAME_SPELLING=new.NAME_SPELLING, |
| 169 | FULL_NAME_SPELLING=new.FULL_NAME_SPELLING, |
| 170 | CERTIFICATE_TYPE_ID=new.CERTIFICATE_TYPE_ID, |
| 171 | CERTIFICATE_NUMBER=new.CERTIFICATE_NUMBER, |
| 172 | PHONE_NUMBER=new.PHONE_NUMBER, |
| 173 | EMAIL=new.EMAIL, |
| 174 | IMAGE_URL=new.IMAGE_URL, |
| 175 | GENDER_ID=new.GENDER_ID, |
| 176 | NATION_ID=new.NATION_ID, |
| 177 | COUNTRY_ID=new.COUNTRY_ID, |
| 178 | ADDRESS_ID=new.ADDRESS_ID, |
| 179 | ACCOUNT_NAME=new.ACCOUNT_NAME, |
| 180 | ACCOUNT_EXPIRY_DATE=new.ACCOUNT_EXPIRY_DATE, |
| 181 | ORGANIZATION_ID=new.ORGANIZATION_ID, |
| 182 | IDENTITY_TYPE_ID=new.IDENTITY_TYPE_ID, |
| 183 | ACTIVATION=new.ACTIVATION, |
| 184 | STATE=new.STATE, |
| 185 | IS_DATA_CENTER=new.IS_DATA_CENTER |
| 186 | where ID=new.ID |
| 187 | ; |
| 188 | |
| 189 | end if; |
| 190 | |
| 191 | else |
| 192 | |
| 193 | -- 如果数据没变化,但存在记录,且被处理,则标记未 不更新、不处理 |
| 194 | update TMP_ACCOUNT_TRANS set |
| 195 | TRANS_STATUS='0', |
| 196 | TRANS_TIME=now(), |
| 197 | PROC_STATUS='0' |
| 198 | where ID=new.ID |
| 199 | and PROC_RESULT!='0' |
| 200 | ; |
| 201 | |
| 202 | end if; |
| 203 | |
| 204 | end // |
| 205 | delimiter ; |
| 206 | |