Node.js 节点pg库自动提交与显式提交

Node.js 节点pg库自动提交与显式提交,node.js,postgresql,node-postgres,Node.js,Postgresql,Node Postgres,我正在使用Node pg连接并使用我的Postgres数据库。我使用节点js中的Postgres函数插入更新或获取数据。我还使用连接池来获得到数据库的连接 当使用node PG时,让我们假设我触发了一个insert查询,我是否需要 调用提交,或者这是一个自动提交 如果我从节点调用一些函数,对 我需要显式调用commit的数据 我想知道图书馆是否允许我做一些比 每次调用时都调用commit 请注意,这与使用中间层的复杂事务无关 保存点数或基本完全提交以外的任何内容 Postgres数据库与Orac

我正在使用Node pg连接并使用我的Postgres数据库。我使用节点js中的Postgres函数插入更新或获取数据。我还使用连接池来获得到数据库的连接

  • 当使用node PG时,让我们假设我触发了一个insert查询,我是否需要 调用提交,或者这是一个自动提交
  • 如果我从节点调用一些函数,对 我需要显式调用commit的数据
  • 我想知道图书馆是否允许我做一些比 每次调用时都调用commit
  • 请注意,这与使用中间层的复杂事务无关 保存点数或基本完全提交以外的任何内容

  • Postgres数据库与Oracle或SQL server数据库的不同之处在于,数据库本身的默认模式是自动提交,即如果在执行DML语句之前没有Begin语句-Insert Update delete,则该语句仅在执行完成时提交。如果您需要更好的事务控制,那么我们必须以“Begin”显式开始,这将需要通过提供更好的控制在那里进行“Commit”或“Rollback”。因此,上述问题的答案是,如果您不以begin语句开头,那么就不必担心调用commitVivek Anand Y在6小时前

    Oracle和SQL Server都不需要在事务之外提交。您的问题令人困惑。首先,您说您正在使用节点JS中的函数,然后您询问可能的
    提交
    ,这在这种上下文中是不相关的。如果在PG函数内使用事务,则必须控制同一函数内的事务。如果您使用
    BEGIN
    从节点JS启动事务,那么您需要使用
    ROLLBACK
    COMMIT
    完成它。在事务之外,除了执行简单的查询之外,不需要做任何事情。