私は新しいPostgreSQL 9.5.2をセットアップしました。私のトランザクションはすべて自動的にコミットされているようです。警告でトランザクションはPostgreSQL 9.5.2で自動的にコミットされますが、変更するオプションはありませんか?
CREATE TABLE test (id NUMERIC PRIMARY KEY);
INSERT INTO test (id) VALUES (1);
ROLLBACK;
結果:
SELECT * FROM test;
が実際に行を返します。異なるトランザクション、次のクエリに
WARNING: there is no transaction in progress
ROLLBACK
次のSQLを実行している
1
(例えば、inse rtがコミットされました)。
私はautocommit
をオフに設定しようとしましたが、この機能はもう存在しないようです(unrecognized configuration parameter
エラーが発生します)。
ここで何が起こっていますか?
に '\のset'コマンドでなければなりません何も影響を与えていないようです。 'begin'はそうです。私にはバグのようだ。私はWindows 10で 'psql'を使用しています。 –
' \ set AUTCOMMIT off'は最も確かに動作します。あなたはおそらく小文字を使いましたか? 'psql'の変数名は大文字と小文字が区別されます。 –
うん、それは動作します。大文字と小文字が区別されます(ただし、間違ってもエラーがないのはなぜですか?)。クライアントをデフォルトの自動コミットオフ設定でロードするように設定する方法はありますか? –