2015-04-23 2 views
-1

Я использую Node pg для подключения и использования моей базы данных Postgres. Я использую функции Postgres из узла js для вставки обновлений или выборки данных. Я также использую пул соединений для подключения к БД.Узел pg library auto commit vs explicit commit

  1. При использовании узла PG, скажем, я сгореть запрос вставки, нужно ли мне вызов Commit или это авто фиксации.
  2. Также, если я вызываю какую-либо функцию из узла, которая выполняет некоторую модификацию до , мне нужны данные для явного вызова commit.
  3. Мне было интересно, может ли библиотека позволить мне сделать что-то лучше, чем , вызывая фиксацию при каждом вызове.
  4. Обратите внимание, что это не о сложных транзакциях с промежуточными точками сохранения или чем-либо, кроме базового полного фиксации.
+0

Ваш вопрос сбивает с толку. Во-первых, вы говорите, что используете функции из Node JS, а затем задаете вопрос о возможном «COMMIT», который не имеет отношения к такому контексту. Если вы используете транзакцию внутри функции PG, вы должны контролировать транзакцию внутри одной и той же функции. И если вы инициируете транзакцию из Node JS, используя «BEGIN», вам необходимо завершить ее с помощью «ROLLBACK» или «COMMIT». Вне транзакций ничего не нужно делать в дополнение к выполнению простых запросов. –

ответ

-1

База данных Postgres отличается от базы данных Oracle или SQL-сервера тем, что режим по умолчанию для самой базы данных является автоматическим фиксацией, то есть если нет инструкции Begin перед выполнением инструкции DML - вставить обновление удалить, то инструкция просто завершает выполнение. Если вам нужно лучшее управление транзакциями, тогда мы должны начать с «Begin», который тогда потребует «Commit» или «Rollback» там, улучшив контроль. Таким образом, ответ на этот вопрос заключается в том, что если вы не начинаете с инструкции begin, тогда вам не нужно беспокоиться о вызове commit. - Vivek Anand Y 6 часов назад

+0

Ни один из серверов Oracle SQL Server не требует транзакции «COMMIT». –