# python -m pip install --upgrade pip -i http://pypi.douban.com/simple/ # pip install pymysql -i http://pypi.douban.com/simple/ import datetime import sys import pymysql.cursors class MySQLHelper: myVersion = 0.1 def __init__(self, host, port, db, user, password, charset="utf8"): self.host = host self.user = user self.port = port self.password = password self.charset = charset self.db = db try: self.conn = pymysql.connect(host=self.host, port=self.port, user=self.user, passwd=self.password, db=self.db, charset=self.charset, cursorclass=pymysql.cursors.DictCursor) self.cursor = self.conn.cursor() # 设置执行时间为8小时 sql = "set session wait_timeout=288000" self.cursor.execute(sql) sql = "set session interactive_timeout=288000" self.cursor.execute(sql) except Exception as e: print('MySql Error : %d %s' % (e.args[0], e.args[1])) def query(self, sql: object) -> object: try: self.cursor.execute(sql) result = self.cursor.fetchall() return result except Exception as e: print('MySql Error: %s SQL: %s' % (e, sql)) def execute(self, sql): try: self.cursor.execute(sql) self.conn.commit() # 获取更新了多少条数据 return self.cursor.rowcount except Exception as e: print('MySql Error: %s SQL: %s' % (e, sql)) def executeWithPara(self, sql, params): try: self.cursor.execute(sql, params) self.conn.commit() except Exception as e: print('MySql Error: %s SQL: %s' % (e, sql)) def executemany(self, sql, data): try: self.cursor.executemany(sql, data) self.conn.commit() except Exception as e: print('MySql Error: %s SQL: %s' % (e, sql)) def close(self): self.cursor.close() self.conn.close() # 黄海定义的输出信息的办法,带当前时间 def logInfo(msg): i = datetime.datetime.now() print(" %s %s" % (i, msg)) # 准备扩展 _dict = { "t_resource_base": "update t_resource_base t1,t_dm_stage t2 set t1.CHECK_MESSAGE=t2.stage_name where t1.stage_id=t2.stage_id and t1.CHECK_MESSAGE is null limit 100"} if __name__ == '__main__': if len(sys.argv) == 1: print("没有正确输入参数,请检查!输入样例: python pack.py t_resource_base") sys.exit() tableName = sys.argv[1] # 配置 user = 'root' password = 'DsideaL147258369' host = '10.10.14.230' port = 22066 database = 'test' db = MySQLHelper(user=user, host=host, port=port, password=password, db=database) while True: sql = _dict[tableName] cnt = db.execute(sql) logInfo("成功更新%s条" % cnt) if cnt == 0: break db.close()