[2.2.x] Fixed #30928 -- Clarified MySQL/MariaDB support of QuerySet.select_for_update() options.
Thanks Par Andersson for reporting the issue.
Backport of d94d7b113c
from master
This commit is contained in:
parent
406fb336b7
commit
22466f91dc
|
@ -612,10 +612,17 @@ both MySQL and Django will attempt to convert the values from UTC to local time.
|
|||
Row locking with ``QuerySet.select_for_update()``
|
||||
-------------------------------------------------
|
||||
|
||||
MySQL does not support the ``NOWAIT``, ``SKIP LOCKED``, and ``OF`` options to
|
||||
the ``SELECT ... FOR UPDATE`` statement. If ``select_for_update()`` is used
|
||||
with ``nowait=True``, ``skip_locked=True``, or ``of`` then a
|
||||
:exc:`~django.db.NotSupportedError` is raised.
|
||||
MySQL does not support some options to the ``SELECT ... FOR UPDATE`` statement.
|
||||
If ``select_for_update()`` is used with an unsupported option, then
|
||||
a :exc:`~django.db.NotSupportedError` is raised.
|
||||
|
||||
=============== ==========
|
||||
Option MySQL
|
||||
=============== ==========
|
||||
``SKIP LOCKED`` X (≥8.0.1)
|
||||
``NOWAIT`` X (≥8.0.1)
|
||||
``OF``
|
||||
=============== ==========
|
||||
|
||||
When using ``select_for_update()`` on MySQL, make sure you filter a queryset
|
||||
against at least set of fields contained in unique constraints or only against
|
||||
|
|
|
@ -1711,7 +1711,8 @@ them::
|
|||
|
||||
Currently, the ``postgresql``, ``oracle``, and ``mysql`` database
|
||||
backends support ``select_for_update()``. However, MySQL doesn't support the
|
||||
``nowait``, ``skip_locked``, and ``of`` arguments.
|
||||
``of`` argument and the ``nowait`` and ``skip_locked`` arguments are supported
|
||||
only on MySQL 8.0.1+.
|
||||
|
||||
Passing ``nowait=True``, ``skip_locked=True``, or ``of`` to
|
||||
``select_for_update()`` using database backends that do not support these
|
||||
|
|
Loading…
Reference in New Issue