Откат DML-оператора в pgAdmin - PullRequest
3 голосов
/ 29 марта 2012

В pgAdmin, если я выполняю запрос вставки, я не вижу способа ни зафиксировать, ни откатить оператор, который я только что выполнил (я знаю, что он автоматически фиксируется). Я привык к Oracle и разработчику SQL, где я мог запустить оператор, а затем откатить последний оператор, который я выполнил, нажатием кнопки. Как бы я достиг того же самого здесь?

Ответы [ 3 ]

11 голосов
/ 29 марта 2012

Использовать транзакцию в окне SQL:

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

- редактировать - Другой пример:

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 
8 голосов
/ 16 июля 2013

Я также DEARLY предпочитаю, чтобы Oracle автоматически вводил все в транзакцию, чтобы избежать катастрофических ошибок вручную.

Включение автоматической фиксации по умолчанию в Предприятие продукт, IMO, за гранью порока, и ничего, кроме ПОЛНОСТЬЮ, НАДЕЖНО СУЩЕСТВУЮЩИМ Выбор дизайна: (

В любом случае -- работая с Postgres, всегда нужно помнить

BEGIN;

в начале ручной работы или sql-скрипты.

Какпрактическая привычка: тогда, когда вы скажете: COMMIT; в Oracle, я использую строку

END; BEGIN;

в Postgres, котораяделает то же самое, то есть фиксирует текущую транзакцию и немедленно запускает новую.


При использовании JDBC или аналогичного метода для создания соединения всегда используйте какой-либо метод, например, getPGConnection (), который включает в себя:

...
Connection dbConn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
dbConn.setAutoCommit(false);
...

, чтобы убедиться, что в каждом соединении отключена автоматическая фиксация.

2 голосов
/ 11 июля 2018

Если вы используете pgAdmin4, вы можете включать и выключать автоматическую фиксацию и / или автоматический откат.

Перейдите в раскрывающееся меню «Файл» и выберите параметр «Настройки».На вкладке «Редактор SQL» -> «Параметры» вы можете увидеть параметры включения и отключения автоматической фиксации / отката.

Параметр автоматической фиксации / отката

...