我正在尝试在一个数据库中执行多个查询 for-loop
. 所以在每个 loop
,如果 query
执行失败,全部 queries
在那里面 loop
不会承诺 database
并返回失败的错误消息 query
. 下面是我的代码。似乎还有一个 query
无法运行,其他查询仍将执行并将数据提交到 database
. 我怎样才能改变它来实现我想要的?谢谢
代码:
import mysql.connector
mydb = mysql.connector.connect()
cursor = mydb.cursor()
for i in country_list:
try:
query1 = "call_sp_insert_sth_1" //insert data to DB
query2 = "call_sp_insert_sth_2" //insert data to DB
query3 = "call_sp_insert_sth_3" //update data to DB
cursor.execute(query1)
cursor.execute(query2)
cursor.execute(query3)
mydb.commit()
except Exceptiion as err:
fail_list.append('error':err.msg)
continue
mysql.connector.close_connection(mydb)
2条答案
按热度按时间ygya80vv1#
我会这样写你的代码。
我倾向于将查询作为带有参数的for循环之外的变量,然后填充循环中的参数。
只有在“try”部分没有错误的情况下,“else”部分才会启动。
pn9klfpd2#
你需要设置
mydb
无法自动提交到的连接。