【问题标题】:Does Postgres log implicit transactions?Postgres 是否记录隐式事务?
【发布时间】:2023-01-24 23:09:07
【问题描述】:

Postgres docs

PostgreSQL 实际上将每个 SQL 语句都视为在一个事务中执行。如果您不发出 BEGIN 命令,那么每个单独的语句都有一个隐式的 BEGIN 和(如果成功的话)环绕它的 COMMIT。由 BEGIN 和 COMMIT 包围的一组语句有时称为事务块。

当我设置log_statement='all'(根据How to log PostgreSQL queries?)时,SELECT 语句未包含在BEGINCOMMIT 中。另一方面,INSERTs 被包裹在BEGINCOMMIT 中。

日志中是否排除了隐式事务?

相关:Does Postgresql implicitly wrap select statements in transaction?

【问题讨论】:

    标签: sql database postgresql logging transactions


    【解决方案1】:

    Postgres 是否记录隐式事务?

    不。

    日志显示来自客户端的显式 SQL 语句。独立语句周围的隐式事务不受语句控制,因此 BEGIN 和 COMMIT 不会出现在日志中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 2014-10-15
      • 2021-11-15
      相关资源
      最近更新 更多