You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.1 KiB

# 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()