Search code examples
postgresqlpgadmin

Rollback DML statement in pgAdmin


In pgAdmin, if I execute an insert query, I don't see any way to either commit or rollback the statement I just ran (I know it auto commits). I'm used to Oracle and SQL developer, where I could run a statement, and then rollback the last statement I ran with a press of a button. How would I achieve the same thing here?


Solution

  • Use transaction in the SQL window:

    BEGIN;
    DROP TABLE foo;
    ROLLBACK; -- or COMMIT;
    

    -- edit -- Another example:

    BEGIN;
    INSERT INTO foo(bar) VALUES ('baz') RETURNING bar; -- the results will be returned
    SELECT * FROM other_table; -- some more result
    UPDATE other_table SET var = 'bla' WHERE id = 1 RETURNING *; -- the results will be returned
    
    -- and when you're done with all statements and have seen the results:
    ROLLBACK; -- or COMMIT