Tre*_*ent 3 python django django-database
在Django文档状态
如果你依靠"自动事务"在select_for_update()和后续的写操作之间提供锁定 - 一个极其脆弱的设计,但仍然可能 - 你必须将相关代码包装在atomic()中.从Django 1.6.3开始,在自动提交模式下使用select_for_update()执行查询将引发TransactionManagementError.
为什么这被认为是脆弱的?我原以为这会导致适当的交易.
小智 9
select_for_update 并不脆弱.
我写道"如果你依赖于"自动交易""那么你需要在从1.6升级到1.5时检查你的代码.
如果你不依赖于"自动交易",如果概念没有响铃,甚至更多,那么你不需要做任何事情.
正如yuvi的回答所指出的那样(非常好,谢谢!)当Django遇到无效代码时会引发异常.没有必要考虑这一点,直到你看到一个被TransactionManagementError提出来select_for_update.
| 归档时间: |
|
| 查看次数: |
1403 次 |
| 最近记录: |