gpt4 book ai didi

perl - 关于 DBD::Pg 的 AutoCommit,文档是否存在谎言?

转载 作者:行者123 更新时间:2023-11-29 11:48:41 26 4
gpt4 key购买 nike

来自docs :

According to the DBI specification the default for AutoCommit is a true value. In this mode, any change to the database becomes valid immediately. Any BEGIN, COMMIT or ROLLBACK statements will be rejected. DBD::Pg implements AutoCommit by issuing a BEGIN statement immediately before executing a statement, and a COMMIT afterwards.

我的测试脚本:

#!/usr/bin/perl

use strict;
use warnings;
use DBI;

my $dbh = DBI->connect("dbi:Pg:dbname=test");
print "AutoCommit = $dbh->{AutoCommit}\n";
$dbh->do('INSERT INTO foo(x) VALUES (1)');

脚本输出:

AutoCommit = 1

还有我的日志(log_statement = 'all'):

2012-03-05 20:21:02 CST rootLOG: statement: INSERT INTO foo(x) VALUES (1)

(请原谅我以 root 身份测试我的脚本!)

DBD::Pg 文档向我 promise 的 BEGINCOMMIT 在哪里?

最佳答案

我猜测 AutoCommit=1 所做的是在服务器端将 session 标记为 AUTOCOMMIT,请参阅 http://www.postgresql.org/docs/9.1/static/ecpg-sql-set-autocommit.html .不过,为了确保我们必须查看 dbi::Pg 源代码。

关于perl - 关于 DBD::Pg 的 AutoCommit,文档是否存在谎言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9577066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com