现在有一批数据,比如 前几条数据格式都正确,中间某条或者几条格式不完整,并且就是在这几条有问题的数据处在 commit 的时候报错了 Internal Error ( cymysql.err.InternalError ) except 捕获并且执行 rollback 不成功, 导致部分数据提交数据库,错误数据以及其下面的的数据没提交。
期望是要么全提交要么全失败,如何实现?
期望是要么全提交要么全失败,如何实现?
|
1
代码
try: db.session.add_all(self.tasks) db.session.commit() except Exception as e: db.session.rollback() raise e |
|
xulolololololoDec 14, 2019 via Android
2
你开个事物不就好了
|
|
CallMeReznovDec 14, 2019
3
事物
|
|
jamryDec 14, 2019 via iPhone
4
事务
|
|
5
@xulolololololo flask -SQLAlchemy 默认事务不都是开启的吗? commit 时候才提交?
|
|
6
@CallMeReznov flask -SQLAlchemy 默认事务不都是开启的吗? commit 时候才提交?
|
|
8
try:
db.session.add(Order("a1")) db.session.add(Order("a2")) db.session.add(Order("a2")) db.session.commit() except Exception as e: db.session.rollback() raise e 参数具有唯一性要求,所以第三条肯定失败, 但是 第一第二条却成功了? 难道这三条操作不在同一个事务里面吗? |