【发布时间】:2014-06-26 22:17:43
【问题描述】:
目前,我有以下方法可以在Python 中使用psycopg2 执行INSERT/UPDATE/DELETE 语句:
def exec_statement(_cxn, _stmt):
try:
db_crsr = _cxn.cursor()
db_crsr.execute(_stmt)
_cxn.commit()
db_crsr.close()
return True
except:
return False
但我真正希望它做的不是 bool,而是返回受事务影响的行数,如果操作失败则返回 -1。
有没有办法获得受_cxn.commit() 影响的行数?例如。对于单个 INSERT,它始终为 1,对于 DELETE 或 UPDATE,受语句影响的行数等?
【问题讨论】:
-
不要使用裸露的
except子句!您应该使用psycopg2.errors模块。 docs中有一个完整的列表