Ben SELECT ifadeleri başarısız ya da başarılı olanları taahhüt geri alınması gerekir?

1 Cevap php

Alışkanlık dışında ben catch bloğunun başında bir geri alma, tüm SQL sorguları için benim uygulama kodunda try / catch bloklarını kullanarak oldum. Ben de başarılı olan işleyenlerin oldum. Bu SELECT s için gerekli mi? Bu veritabanı tarafında bir şey boşaltmak mı? Biraz anlamsız görünüyor, ama belki ben farkında değilim bir nedeni var yani seçme ifadeler herhangi bir verilerini değiştirmeden değildir.

örneğin

try {
  $results = oci_execute($statement)
  oci_commit($connection);
  return $results;
}
catch {
  oci_rollback($connection)
  throw new SqlException("failed");
}

1 Cevap

In SELECT ifadeleri Oracle (onlar sürece SELECT FOR UPDATE) dolaylı herhangi bir kayıt ve asla açık işlemlerini kilit asla.

Eğer işlem içinde herhangi bir DML işlemlerini verilen sürece, o size taahhüt fark veya işlem geri olmayacak.