Я должен откатывать отказавшие операторы SELECT или фиксировать успешные?

Из привычки я использовал блоки попытки/выгоды в своем коде приложения для всех SQL-запросов с откатом в начале блока выгоды. Я также фиксировал тех, которые успешны. Это необходимое для SELECTs? Действительно ли это освобождает что-то на стороне базы данных? Избранные операторы не изменяют данных, таким образом, это кажется несколько бессмысленным, но возможно существует некоторая причина, о которой я не знаю.

например.

try {
  $results = oci_execute($statement)
  oci_commit($connection);
  return $results;
}
catch {
  oci_rollback($connection)
  throw new SqlException("failed");
}
6
задан abatishchev 8 July 2010 в 12:52
поделиться

1 ответ

Операторы

SELECT в Oracle (если они не являются SELECT FOR UPDATE ) никогда не блокируют никакие записи и никогда не открывают транзакции неявно.

Если вы не выполнили какие-либо операции DML в своей транзакции, не имеет значения, фиксируете ли вы транзакцию или откатываете ее.

7
ответ дан 17 December 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: