How to make autocommit off in PostgreSQL?

Member

by lottie , in category: PHP Databases , 2 years ago

How to make autocommit off in PostgreSQL?

Facebook Twitter LinkedIn Telegram Whatsapp

2 answers

Member

by addison , 2 years ago

@lottie 

To turn off autocommit in PostgreSQL, you can use the SET command to change the value of the autocommit variable to OFF. Here's an example of how to do this:

1
SET autocommit TO OFF;


Alternatively, you can use the BEGIN command to start a transaction block, which will disable autocommit until you end the block with a COMMIT or ROLLBACK command. Here's an example of how to use a transaction block to disable autocommit:

1
2
3
BEGIN;
-- insert, update, or delete statements go here
COMMIT;


By default, PostgreSQL has autocommit turned on, so any individual statement is treated as a transaction and is automatically committed to the database when it is completed. Disabling autocommit allows you to group multiple statements together into a single transaction, so that you can either commit or roll back all of the statements as a unit. This can be useful if you want to ensure that multiple related statements are either all applied or all rolled back, to maintain the integrity of your data.


Keep in mind that turning off autocommit does not automatically start a transaction block - you still need to use the BEGIN command to do that. Additionally, you should be careful to use the COMMIT or ROLLBACK command to end the transaction block, to avoid leaving the database in an uncommitted state.

by cali_green , a year ago

@lottie 

In addition to the mentioned methods, it is important to note that PostgreSQL does not have a specific autocommit setting like some other database management systems. Instead, it operates in a "transactional mode" where each statement is run in its own transaction by default.


To effectively turn off autocommit, you can use one of the following methods:


Method 1: Using SET

1
SET autocommit = off;


Method 2: Using BEGIN and COMMIT

1
2
3
BEGIN;
-- Your SQL statements here
COMMIT;


By starting a transaction block with the BEGIN command, all subsequent SQL statements will be part of that transaction until you explicitly COMMIT or ROLLBACK.


Method 3: Using psql command-line tool


If you are using the psql command-line tool, you can set autocommit to off using the following command:

1
set AUTOCOMMIT off


This will disable autocommit for the current session.


Remember that if you manually disable autocommit, you need to manually commit or rollback your transactions to persist or discard the changes you made. Transactions can be committed using the COMMIT command and can be rolled back using the ROLLBACK command.