Update index.py

pull/577/head
Mr Chen 1 year ago
parent 5535d56304
commit 6b6e1f415f
  1. 81
      plugins/mysql/index.py

@ -3127,9 +3127,9 @@ def syncDatabaseRepair(version=''):
sync_count_data = sync_db.query(cmd_count_sql)
print(f'sync count data cos:{time.time() - time_s:.4f}s')
print(local_count_data,sync_count_data)
# if local_count_data[0]['num'] == sync_count_data[0]['num']:
# is_break = True
# break
if local_count_data[0]['num'] == sync_count_data[0]['num']:
is_break = True
break
diff = sync_count_data[0]['num'] - local_count_data[0]['num']
print("diff," + str(diff)+' line data!')
@ -3149,45 +3149,44 @@ def syncDatabaseRepair(version=''):
print('progress,%.2f' % progress+'%')
mw.writeFile(table_name_pos_file, str(pos))
else:
if len(sync_select_data) == 0:
continue
for idx in range(len(sync_select_data)):
insert_data = sync_select_data[idx]
# print(insert_data)
local_inquery_sql = 'select '+pkey_name+' from ' + table_name+ ' where ' +pkey_name+' = '+ str(insert_data[pkey_name])
# print(local_inquery_sql)
tdata = local_db.query(local_inquery_sql)
# print(tdata)
if len(tdata) == 0:
print("id:"+ str(insert_data[pkey_name])+ " no exists, insert")
insert_sql = 'insert into ' + table_name
field_str = ''
value_str = ''
for field in insert_data:
field_str += '`'+field+'`,'
value_str += '\''+escape_string(str(insert_data[field]))+'\','
field_str = '(' +field_str.strip(',')+')'
value_str = '(' +value_str.strip(',')+')'
insert_sql = insert_sql+' '+field_str+' values'+value_str+';'
print(insert_sql)
r = local_db.execute(insert_sql)
print(r)
else:
if sync_select_data[idx] == local_select_data[idx]:
continue
print("id:"+ str(insert_data[pkey_name])+ " data is not equal, update")
update_sql = 'update ' + table_name
field_str = ''
value_str = ''
for field in insert_data:
if field == pkey_name:
if len(sync_select_data) != 0:
for idx in range(len(sync_select_data)):
insert_data = sync_select_data[idx]
# print(insert_data)
local_inquery_sql = 'select '+pkey_name+' from ' + table_name+ ' where ' +pkey_name+' = '+ str(insert_data[pkey_name])
# print(local_inquery_sql)
tdata = local_db.query(local_inquery_sql)
# print(tdata)
if len(tdata) == 0:
print("id:"+ str(insert_data[pkey_name])+ " no exists, insert")
insert_sql = 'insert into ' + table_name
field_str = ''
value_str = ''
for field in insert_data:
field_str += '`'+field+'`,'
value_str += '\''+escape_string(str(insert_data[field]))+'\','
field_str = '(' +field_str.strip(',')+')'
value_str = '(' +value_str.strip(',')+')'
insert_sql = insert_sql+' '+field_str+' values'+value_str+';'
# print(insert_sql)
r = local_db.execute(insert_sql)
print(r)
else:
if sync_select_data[idx] == local_select_data[idx]:
continue
field_str += '`'+field+'`=\''+escape_string(str(insert_data[field]))+'\','
field_str = field_str.strip(',')
update_sql = update_sql+' set '+field_str+' where '+pkey_name+'=\''+str(insert_data[pkey_name])+'\';'
print(update_sql)
r = local_db.execute(update_sql)
print(r)
print("id:"+ str(insert_data[pkey_name])+ " data is not equal, update")
update_sql = 'update ' + table_name
field_str = ''
value_str = ''
for field in insert_data:
if field == pkey_name:
continue
field_str += '`'+field+'`=\''+escape_string(str(insert_data[field]))+'\','
field_str = field_str.strip(',')
update_sql = update_sql+' set '+field_str+' where '+pkey_name+'=\''+str(insert_data[pkey_name])+'\';'
# print(update_sql)
r = local_db.execute(update_sql)
print(r)
if is_break:
print("break all")
break

Loading…
Cancel
Save