diff --git a/docs/ref/databases.txt b/docs/ref/databases.txt index 4256395d781..fcc6596b82d 100644 --- a/docs/ref/databases.txt +++ b/docs/ref/databases.txt @@ -625,10 +625,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 and MariaDB do 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 MariaDB MySQL +=============== ========= ========== +``SKIP LOCKED`` X (≥8.0.1) +``NOWAIT`` X (≥10.3) 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 diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 17238a56f6d..4e12ecabe36 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -1706,8 +1706,9 @@ 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. +backends support ``select_for_update()``. However, MariaDB 10.3+ supports only +the ``nowait`` argument and MySQL 8.0.1+ supports the ``nowait`` and +``skip_locked`` arguments. MySQL and MariaDB don't support the ``of`` argument. Passing ``nowait=True``, ``skip_locked=True``, or ``of`` to ``select_for_update()`` using database backends that do not support these