使用Django和PostgreSQL进行事务(@atomic)的默认隔离级别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Django和PostgreSQL进行事务(@atomic)的默认隔离级别相关的知识,希望对你有一定的参考价值。

我想知道将Django与PostgreSQL数据库一起使用时的默认隔离级别是什么。可序列化隔离? (https://www.postgresql.org/docs/9.1/static/transaction-iso.html#XACT-SERIALIZABLE

有一个关于mysqlDjango transaction isolation level in mysql & postgresql)的讨论,但尽管它的名字似乎并没有讨论PostgreSQL

谢谢!

答案

来自docs

与PostgreSQL本身一样,Django默认为READ COMMITTED隔离级别。

另一答案

可以使用如下数据库设置配置Django:

import psycopg2.extensions

DATABASES = {
    # ...
    'OPTIONS': {
        'isolation_level': psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE,
    },
}

文档 - https://docs.djangoproject.com/en/2.2/ref/databases/#isolation-level

以上是关于使用Django和PostgreSQL进行事务(@atomic)的默认隔离级别的主要内容,如果未能解决你的问题,请参考以下文章

从烧瓶中的 PostgreSQL 函数提交事务

如何轻松地将 Django 应用程序从 mySQL 转换为 PostgreSQL?

postgresql:不能在事务块内运行

使用 Django + PostgreSQL 进行快速搜索

PostgreSQL 和事务上的 Debezium CDC

我可以要求 Postgresql 忽略事务中的错误吗