在提交许多查询时,python psycopg2如何忽略一些内部错误
我在使用python psycopg2提交一些查询时遇到了一些问题,下面是我的代码:在提交许多查询时,python psycopg2如何忽略一些内部错误,python,commit,psycopg2,rollback,Python,Commit,Psycopg2,Rollback,我在使用python psycopg2提交一些查询时遇到了一些问题,下面是我的代码: db = psycopg2.connect(database="**", user="**", password="**", host="**", port="**") cursor = db.cursor() cursor.execute("***") # actually I have many cursor.execute() db.commit() 我的问题是,当提交这么多查询时,如果在其中一些查询中
db = psycopg2.connect(database="**", user="**", password="**", host="**", port="**")
cursor = db.cursor()
cursor.execute("***") # actually I have many cursor.execute()
db.commit()
我的问题是,当提交这么多查询时,如果在其中一些查询中出现错误,整个提交程序都会死掉,我怎么能忽略这些错误并提交其余的查询呢
我试着做点什么:
db = psycopg2.connect(database="**", user="**", password="**", host="**", port="**")
cursor = db.cursor()
cursor.execute("***") # many cursor.execute()
for i in range(3):
try:
db.commit()
break
except Exception, e:
db.rollback()
log.write(traceback.format_exc() + "\n\n sql error: " + e.pgerror)
time.sleep(1.5)
但是它似乎不起作用,有人能帮我吗?你能不能不做下面的事情
db = psycopg2.connect(database="**", user="**", password="**", host="**", port="**")
cursor = db.cursor()
for i in range(3):
try:
cursor.execute("***")
except Exception, e:
db.rollback()
else:
db.commit()
你不改为做下面的事情吗
db = psycopg2.connect(database="**", user="**", password="**", host="**", port="**")
cursor = db.cursor()
for i in range(3):
try:
cursor.execute("***")
except Exception, e:
db.rollback()
else:
db.commit()
您可以使用
db.autocommit=True
进行无事务处理。或者,您可以使用保存点
和回滚到保存点
sql语句。您可以不使用事务,使用db.autocommit=True
。或者,您可以使用SAVEPOINT
和rollbacktosavepoint
sql语句。谢谢!我会再检查一遍。谢谢!我会再次检查。autocommit=True似乎可以完美地解决我的问题,这里给出一些有关我问题的详细信息。非常感谢!autocommit=True似乎完美地解决了我的问题,这里给出一些关于我的问题的细节。非常感谢!