def getCURVEDATA(Curvedata, Curve):
db = connect()
cursor = db.cursor()
submitTime = datetime.datetime.now()
for key, vals in Curve.items():
allsql = "insert into allcurve1 (CurveName, `Time`,Creater,CurveType,G1,G2,S1,S2,OLC) VALUES ('%s','%s','%s','%s',%s,%s,%s,%s,%s)" \
% (key, submitTime, vals[0], vals[1], vals[2], vals[3], vals[4], vals[5], vals[6])
try:
cursor.execute(allsql)
#print(cursor.lastrowid) #最后插入行的主键id
insertID = cursor.lastrowid
#print(db.insert_id()) #最新插入行的主键id
db.commit()
print('数据插入成功')
except Exception:
db.rollback() #如果出现异常,回滚(
print("数据插入失败")
#------查看表结构--------
# cursor.execute("show create table curvecoordinate")
# myresult = cursor.fetchall()
# print(myresult)
# cursor.execute("show create table allcurve1")
# myresult = cursor.fetchall()
# print(myresult)
for key1, val1 in Curve.items():
Selsql = "SELECT id FROM allcurve1 WHERE CurveName='%s'" % (key1)
# print(Selsql)
cursor.execute(Selsql)
myresult = cursor.fetchall()
print(myresult[0][0])
ID = myresult[0][0]
try:
for i in range(5):
#ON DUPLICATE KEY UPDATE 需要给表创建索引值,索引值可以是两个数据的组合
sql = "INSERT INTO {} (`CurveId`,`pointId`,`X`,`Y`) VALUES (%s,%s, %s, %s) ON DUPLICATE KEY UPDATE `CurveId` = %s,`pointId` = %s".format('curvecoordinate') % (
ID, Curvedata['pointID'][i], Curvedata['X'][i], Curvedata['Y'][i], ID, Curvedata['pointID'][i])
print(sql)
res = cursor.execute(sql) #如果插入成功,就会输出插入成功的行数,如果失败就返回0
db.commit()
print('数据插入成功', res)
except Exception as e:
db.rollback() # 如果出现异常,回滚(
print("坐标数据插入失败", e)
cursor.close()
db.close()
if __name__ == '__main__':
Curvedata={'pointID': [1, 2, 3, 4, 5, 6, 7,], 'X': [0, 0.09962999075651169, 0.19966498017311096, 0.299699991941452, 0.3997349739074707, 0.4997699558734894, 0.5998049378395081, 0.6998399496078491, 0.7998749613761902, 0.8999099135398865],'Y': [0, 0.09962999075651169, 0.19966498017311096, 0.299699991941452, 0.3997349739074707, 0.4997699558734894, 0.5998049378395081, 0.6998399496078491, 0.7998749613761902, 0.8999099135398865]}
Curve = {'6_base1': ['zcy', 'acce', 223.3, 234.5, 373.7, 57.7, 30.7], '6_base': ['zcy', 'acce', 155.3, 295.1, 373.7, 224, 34.7]}
getCURVEDATA(Curvedata, Curve)
mysql插入数据:如果存在就更新,如果不存在就插入 ON DUPLICATE KEY UPDATE
最新推荐文章于 2023-10-18 11:49:06 发布