轉(zhuǎn)換數(shù)據(jù)

# !/usr/bin/env python3
# -*- coding:utf-8 -*-

import pymysql
import os
import time
from datetime import date, datetime

remoteDBUser='db_order'
remoteDBPasswd='db_order'
remoteDBHost='192.168.16.125'

try:
    conn = pymysql.connect(host=remoteDBHost,port= 3306,user = remoteDBUser,passwd=remoteDBPasswd,db='db_order_sharding')
    cur = conn.cursor()
    cur.execute("select shard_name from ord_table_shards")
    shardTuples = cur.fetchall()
    print(shardTuples)
    storeIdSet = set()
    for shardTuple in shardTuples:
        shardName = shardTuple[0]
        #print("shardName:%s" %shardName)
        storeIdStr = shardName.split('_')[-1]
        #print("storeId:%s" % storeIdStr)
        storeIdSet.add(storeIdStr)
    print("storeIdSet:%s" %storeIdSet)
    cntMap = dict()
    backupDir = '/home/developer/mysqlbackup/' + time.strftime("%Y%m%d")
    if not os.path.exists(backupDir):
        os.makedirs(backupDir)
    writeFileName = backupDir + "/updateOrderCode.sql"
    if os.path.exists(writeFileName):
        os.remove(writeFileName)
    with open(writeFileName, 'a', encoding='utf-8') as f:
        for storeId in storeIdSet:
            storeIdHex = hex(int(storeId))
            stripHex = storeIdHex[2:]
            print("storeId:%s ,storeIdHex:%s,%s" %(storeId,storeIdHex,stripHex))
            generateStr = stripHex
            if len(stripHex) < 6:
                prependZero = '0' * (6 -len(stripHex))
                generateStr = prependZero + stripHex
                print("generateStr:%s" %generateStr)
            cur.execute("select id, create_time, store_id from ord_order_info_%s" %storeId)
            createTimeTuples = cur.fetchall()
            print(createTimeTuples)
            for createTimeTuple in createTimeTuples:
                orderId = createTimeTuple[0]
                print("orderId:%s" %orderId)
                createTime = createTimeTuple[1]
                #print("createTime:%s, type:%s" %(createTime,type(createTime)))
                timeStr = createTime.strftime('%Y%m%d')
                print("timestr:%s" %timeStr)
                key = generateStr + timeStr
                print("key:%s" %key)
                cnt = 0
                if cntMap.get(key) is None:
                    print("not has key")
                    cnt = 1
                    cntMap[key] = 1
                else:
                    print("has key")
                    cntMap[key] = cntMap[key] + 1
                    cnt = cntMap[key]
                strCnt = str(cnt)
                gCnt = strCnt
                lenCnt = len(strCnt)
                if lenCnt < 4:
                    pZero = '0' * (4 - lenCnt)
                    gCnt = pZero + strCnt
                print("gCnt:%s" %gCnt)
                print("gOrderCode:%s%s" %(key, gCnt))
                gOrderCode = key + gCnt
                sid = gOrderCode[:6]
                storeIdH = int(sid,16)
                print("storeIdH:%s, storeId:%s" %(storeIdH, createTimeTuple[2]))
                #cur.execute("update pay_flow_%s p, ord_order_info_%s i set p.order_id = %s where p.order_id = i.id and i.id = %s" %(storeIdH, storeIdH, gOrderCode, orderId))
                f.writelines("update pay_flow_%s p, ord_order_info_%s i set p.order_id = '%s' where p.order_id = i.id and i.id = '%s';\n" %(storeIdH, storeIdH, gOrderCode, orderId))
                #print("update pay_flow_%s orderId:%s success!" %(storeIdH, orderId))
                f.writelines("update ord_order_detail_%s d, ord_order_info_%s i set d.order_id = '%s' where d.order_id = i.id and i.id = '%s';\n" %(storeIdH, storeIdH, gOrderCode, orderId))
                    #cur.execute("update ord_order_detail_%s d, ord_order_info_%s i set d.order_id = %s where d.order_id = i.id and i.id = %s" %(storeIdH, storeIdH, gOrderCode, orderId))
                    #cur.execute("update ord_order_info_%s set id = %s where id = %s" %(storeIdH,gOrderCode,orderId))
                f.writelines("update ord_order_info_%s set id = '%s' where id = '%s';\n" %(storeIdH,gOrderCode,orderId))
    #f.flush()
    #f.close()
    cur.close()
    conn.close()
except Exception as  e:
        print(e)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蒋腮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拧廊,死亡現(xiàn)場離奇詭異再膳,居然都是意外死亡,警方通過查閱死者的電腦和手機饶米,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來车胡,“玉大人檬输,你說我怎么就攤上這事⌒偌” “怎么了丧慈?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長主卫。 經(jīng)常有香客問我逃默,道長,這世上最難降的妖魔是什么簇搅? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任完域,我火速辦了婚禮,結(jié)果婚禮上瘩将,老公的妹妹穿的比我還像新娘吟税。我一直安慰自己凹耙,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布肠仪。 她就那樣靜靜地躺著肖抱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪异旧。 梳的紋絲不亂的頭發(fā)上意述,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音吮蛹,去河邊找鬼荤崇。 笑死,一個胖子當著我的面吹牛匹涮,可吹牛的內(nèi)容都是我干的天试。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼然低,長吁一口氣:“原來是場噩夢啊……” “哼喜每!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雳攘,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤带兜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吨灭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刚照,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年喧兄,在試婚紗的時候發(fā)現(xiàn)自己被綠了无畔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡吠冤,死狀恐怖浑彰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拯辙,我是刑警寧澤郭变,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站涯保,受9級特大地震影響诉濒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜夕春,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一未荒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撇他,春花似錦茄猫、人聲如沸狈蚤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锌畸,卻和暖如春勇劣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背潭枣。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工比默, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盆犁。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓命咐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谐岁。 傳聞我的和親對象是個殘疾皇子醋奠,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)伊佃,斷路器窜司,智...
    卡卡羅2017閱讀 134,657評論 18 139
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,419評論 0 17
  • 最痛苦的不是生病航揉,而是吃藥塞祈,雖然你知道藥對你來說是益物,病是苦痛帅涂,但仍會覺得吃藥是最痛苦的议薪,就像你明明喜歡一個人卻...
    踏蔭閱讀 158評論 0 4
  • 二十歲 最美麗的年紀 要去浪啊 去草原斯议,海灘,高山 去看導演相機下的古都 去看文人鋼筆下的重山 去游覽庆锦,去享受 也...
    覓訴閱讀 121評論 0 1
  • 一捅位、近六個月的目標:完美的伴侶 二、需要種下的種子:愛與陪伴搂抒,智慧艇搀,溫暖,財富求晶,樣貌 三焰雕、具體的播種行為 1.又到...
    柔光寶寶閱讀 131評論 0 0