国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python通過調(diào)用mysql存儲(chǔ)過程實(shí)現(xiàn)更新數(shù)據(jù)功能示例

2020-01-04 15:31:29
字體:
供稿:網(wǎng)友

本文實(shí)例講述了Python通過調(diào)用mysql存儲(chǔ)過程實(shí)現(xiàn)更新數(shù)據(jù)功能。分享給大家供大家參考,具體如下:

一、需求分析

由于管理費(fèi)率配置錯(cuò)誤,生成訂單的還本付息表和訂單表的各種金額,管理費(fèi)之間的計(jì)算都有錯(cuò)誤,需要進(jìn)行數(shù)據(jù)訂正。為此,為了造個(gè)輪子,以后省很多功夫,全部用程序去修正,不接入人工。

二、帶參數(shù)mysql 存儲(chǔ)過程創(chuàng)建

1、更新訂單付息表(t_order_rapay)

drop procedure if exists update_t_order_rapay;delimiter $$create procedure update_t_order_rapay(IN orderNo varchar(64))begin  declare t_order_no varchar(64);  set t_order_no=orderNo;  UPDATE t_order_repay  SET total_amount=principal+interest+round(manage_amount*0.0808/0.052,3)+breach_amount,    left_amount=principal+interest+round(manage_amount*0.0808/0.052,3)+breach_amount,  left_repay_manager=round(manage_amount*0.0808/0.052,3),  manage_amount=round(manage_amount*0.0808/0.052,3)  WHERE order_no=t_order_no;end $$delimiter;

2、更新訂單表(t_order_info)

drop procedure if exists update_t_order_info;delimiter $$create procedure update_t_order_info(IN orderNo varchar(64))begin  declare t_order_no varchar(64);  set t_order_no=orderNo;  SELECT left_amount into @m1 from t_order_repay WHERE order_no=t_order_no ORDER BY plan_time LIMIT 1;  UPDATE t_order_info  set manage_cost_rate=0.0808,  manage_cost=round(manage_cost*0.0808/0.052,3),  left_amount=borrow_amount+interest_amount+manage_cost,  next_amount_need=@m1  WHERE order_no=t_order_no;end $$delimiter;

3、python 調(diào)用mysql 中的存儲(chǔ)過程

# encoding: utf-8import timeimport sysreload(sys)sys.setdefaultencoding('utf-8')time1 = time.time()import pandas as pdimport pymysql############################################從數(shù)據(jù)庫讀數(shù)據(jù)######################################################線上####################### 加上字符集參數(shù),防止中文亂碼# conn=pymysql.connect(#  host="##########",#  database="######",#  user="####",#  password="##########",#  port=#######,#  charset='utf8'# )# #############測(cè)試庫####################### ## 加上字符集參數(shù),防止中文亂碼# conn=pymysql.connect(#  host="172.16.34.32",#  database="#########",#  user="admin",#  password="##############",#  port=#########,#  charset='utf8'# )#sql語句(安徽)# sqlcmd="""# SELECT order_no from t_order_info WHERE offline_org_no in(# 0032,0035,0036### ) and substr(create_time,1,10)>="2017-10-31"## and `status` in(105,106,107,108)## and manage_cost_rate=0.052### """#################sql語句(江蘇)# sqlcmd2="""# SELECT order_no from t_order_info WHERE offline_org_no in(# 0002,0005,0006,0007,0008,0009,0010,0011,0012,0013,0014,0017,0018,0019,0025,0026,0027,0028,0030,0031,0033,0034# ) and substr(create_time,1,10)>="2017-10-31"# and `status` in(105,106,107,108)# and manage_cost_rate=0.052## """#利用pandas 模塊導(dǎo)入mysql數(shù)據(jù)# data=pd.read_sql(sqlcmd2,conn)# print data### ###################更新order_rapay表# for each in data["order_no"]:#   print each#   # 創(chuàng)建游標(biāo)#   cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#   #有參數(shù)存儲(chǔ)過程#   cursor.execute('call update_t_order_rapay(%s)',(each))#   conn.commit()## print "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"# #####################更新order_info表#################### for each in data["order_no"]:#   print each##   # 創(chuàng)建游標(biāo)#   cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#   #有參數(shù)存儲(chǔ)過程#   cursor.execute('call update_t_order_info(%s)', (each))#   conn.commit()### cursor.close()# print '調(diào)用存儲(chǔ)過程完畢................'# conn.close()# time2=time.time()# print u'總共耗時(shí):' + str(time2 - time1) + 's'

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黔东| 南阳市| 珲春市| 无为县| 英德市| 阿拉尔市| 毕节市| 天长市| 揭东县| 普兰店市| 犍为县| 永清县| 彭州市| 邢台县| 青田县| 洪洞县| 武乡县| 西吉县| 抚顺县| 金塔县| 嵊州市| 罗定市| 扎兰屯市| 黄陵县| 上林县| 调兵山市| 菏泽市| 彭阳县| 道孚县| 南通市| 徐汇区| 无棣县| 正蓝旗| 岳西县| 樟树市| 金溪县| 岳池县| 通河县| 焦作市| 临夏市| 芷江|