[1.8.x] Fixed #24880 -- Added more explicit docs on select_for_update() on SQLite.

Backport of d29ed3f355 from master
This commit is contained in:
Przemysław Suliga 2015-05-31 20:15:45 +02:00 committed by Tim Graham
parent b8dce1af3a
commit 52b5890f52
1 changed files with 5 additions and 2 deletions

View File

@ -1510,14 +1510,17 @@ do not support ``nowait``, such as MySQL, will cause a
:exc:`~django.db.DatabaseError` to be raised. This is in order to prevent code
unexpectedly blocking.
Evaluating a queryset with ``select_for_update()`` in autocommit mode is
a :exc:`~django.db.transaction.TransactionManagementError` error because the
Evaluating a queryset with ``select_for_update()`` in autocommit mode on
backends which support ``SELECT ... FOR UPDATE`` is a
:exc:`~django.db.transaction.TransactionManagementError` error because the
rows are not locked in that case. If allowed, this would facilitate data
corruption and could easily be caused by calling code that expects to be run in
a transaction outside of one.
Using ``select_for_update()`` on backends which do not support
``SELECT ... FOR UPDATE`` (such as SQLite) will have no effect.
``SELECT ... FOR UPDATE`` will not be added to the query, and an error isn't
raised if ``select_for_update()`` is used in autocommit mode.
.. versionchanged:: 1.6.3