blob: b7aaa5201c9c452c4f043017d2fb4d02f47fc2e4 [file] [log] [blame]
刘洪青47205852020-08-14 13:39:30 +08001
2/*
3 * 若通过交换同步组织机构、帐号数据的,须执行该数据库脚本
4 */
5
6use user;
7
8/*
9
10delete from TB_B_ACCOUNT_ORGANIZATION where ADD_ACCOUNT='trans';
11
12delete from TB_B_SAFETY where ADD_ACCOUNT='trans';
13delete from TB_B_ACCOUNT where ADD_ACCOUNT='trans';
14delete from TB_B_USER where ADD_ACCOUNT='trans';
15
16delete from TMP_ACCOUNT_TRANS;
17
18update TMP_ACCOUNT_ORIGIN set UID=UID;
19*/
20
21
22DROP TRIGGER IF EXISTS after_update_organization_origin;
23
24delimiter //
25create trigger after_update_organization_origin after update on TMP_ORGANIZATION_ORIGIN for each row
26begin
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
95end //
96delimiter ;
97
98
99DROP TRIGGER IF EXISTS after_update_account_origin;
100
101delimiter //
102create trigger after_update_account_origin after update on TMP_ACCOUNT_ORIGIN for each row
103begin
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
204end //
205delimiter ;
206