Из документов :
В соответствии со спецификацией DBI по умолчанию AutoCommit является истинным значением.В этом режиме любое изменение в базе данных вступает в силу немедленно.Любые операторы BEGIN
, COMMIT
или ROLLBACK
будут отклонены. DBD :: Pg реализует AutoCommit, выполняя оператор BEGIN
непосредственно перед выполнением оператора, а затем COMMIT
.
Мой тестовый скрипт:
#!/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: оператор: INSERT INTO foo (x) VALUES (1)
(прости меня за проверку моего скрипта как root!)
Где находитсяBEGIN
и COMMIT
мне пообещали DBD :: Pg docs?