编程开启事务,并回滚事务报transaction rolled back because it has been marked as rollback-only
时间: 2024-02-05 08:09:17 浏览: 37
以下是一个示例代码,演示了如何在编程中开启事务并回滚事务报transaction rolled back because it has been marked as rollback-only:
```python
import psycopg2
# 连接到数据库
conn = psycopg2.connect(database="mydb", user="myuser", password="mypassword", host="localhost", port="5432")
cur = conn.cursor()
try:
# 开启事务
conn.autocommit = False
# 执行数据库操作
# ...
# 标记事务为回滚状态
conn.rollback()
except Exception as e:
# 发生异常时回滚事务
conn.rollback()
print("Transaction rolled back because it has been marked as rollback-only:", str(e))
finally:
# 关闭数据库连接
conn.close()
```
在上述代码中,我们首先使用`psycopg2`库连接到数据库。然后,我们通过将`conn.autocommit`设置为`False`来开启事务。在执行数据库操作时,如果发生异常,我们将事务标记为回滚状态,并回滚事务。最后,无论是否发生异常,我们都会关闭数据库连接。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)