- 关于django的TransactionManagementError("Executing DDL statements while in a transaction on databases ""that can't perform a rollback is prohibited.")
Django 支持使用数据库事务来保证数据库操作的原子性和一致性。如果 DDL 操作成功,Django 会提交事务;如果 DDL 操作失败,Django 会回滚到保留点,撤销所有操作。你可以使用函数的 savepoint=True 参数来解决这个问题,如下所示这样 Django 就会在数据库上开启一个保留点,然后在事务内执行 DDL 操作。如果你使用的是 Django 的数据库事务管理,你也可以在代码中捕获异常,然后使用 get_rollback() 函数来确定是否回滚事务。
2023-03-07 21:32:35 - 为什么LayerMapError("Unrecognized transaction mode: %s" % transaction_mode),怎么解决
Django支持三种事务模式自动提交每个操作在成功完成操作之后自动提交在所有操作成功完成之后自动提交,如果有任何操作失败则回滚所有操作。使用例子这里是使用atomic事务模式的例子获取所有的书籍遍历所有的书籍修改书籍的标题这里是使用commit_on_success事务模式的例子获取所有的书籍遍历所有的书籍修改书籍的标题如果你使用commit_on_success事务模式,则每个操作会在成功完成后立即提交。
2023-03-01 22:21:43