Rumah > pangkalan data > Oracle > Bagaimana untuk berguling kembali dalam oracle

Bagaimana untuk berguling kembali dalam oracle

下次还敢
Lepaskan: 2024-04-19 03:27:17
asal
495 orang telah melayarinya

Operasi rollback dalam Oracle boleh membuat asal perubahan dalam urus niaga tanpa komitmen dan memulihkan pangkalan data kepada keadaan sebelum transaksi dimulakan. Terdapat dua kaedah pemulangan semula: secara eksplisit melancarkan semula urus niaga semasa menggunakan penyata ROLLBACK, atau secara automatik melancarkan semula urus niaga apabila ralat berlaku melalui pengendalian pengecualian. Rollback hanya boleh membuat asal perubahan dalam urus niaga yang tidak komited dan amalan terbaik adalah menggunakan pengendalian pengecualian untuk mengendalikan ralat dalam urus niaga untuk memastikan transaksi itu digulung semula dengan betul apabila ralat berlaku. . Transaksi ialah satu set operasi pangkalan data berturut-turut yang sama ada semuanya berjaya atau semuanya gagal. Jika mana-mana operasi dalam urus niaga gagal, keseluruhan urus niaga digulingkan semula, memulihkan pangkalan data kepada keadaan sebelum transaksi bermula.

Cara untuk melancarkan transaksi OracleBagaimana untuk berguling kembali dalam oracle

Terdapat dua cara untuk melancarkan transaksi dalam Oracle:

Menggunakan pernyataan ROLLBACK:

Penyata ROLLBACK digunakan untuk melancarkan transaksi semasa secara eksplisit. Ia akan membuat asal semua perubahan yang dilakukan dalam transaksi.

<code class="sql">ROLLBACK;</code>
Salin selepas log masuk

Pengendalian Pengecualian:

Pengendalian Pengecualian boleh digunakan untuk melancarkan transaksi secara automatik selepas ralat berlaku. Oracle membuang pengecualian apabila ralat berlaku dalam transaksi. Jika pengecualian tidak dikendalikan, urus niaga akan digulung semula secara automatik.
  • Contoh
    Contoh berikut menunjukkan cara untuk melancarkan urus niaga Oracle menggunakan penyata ROLLBACK:
  • <code class="sql">BEGIN
      -- 开始一个事务
      START TRANSACTION;
    
      -- 执行一些更新
      UPDATE employees SET salary = salary * 1.10
      WHERE department_id = 10;
    
      -- 发生错误
      UPDATE employees SET salary = salary * -1 -- 错误:负数工资
      WHERE department_id = 20;
    
      -- 回滚事务
      ROLLBACK;
    END;</code>
    Salin selepas log masuk
    Dalam contoh di atas, penyata KEMASKINI yang pertama berjaya dilaksanakan, tetapi penyata KEMASKINI kedua gagal disebabkan oleh gaji negatif kesilapan. Penyata ROLLBACK melancarkan semula keseluruhan transaksi, membuat asal semua perubahan daripada kedua-dua penyata KEMASKINI.
Nota

Timbal balik hanya boleh membuat asal perubahan dalam transaksi yang dilakukan. Urus niaga yang komited tidak boleh ditarik balik.

Jika ralat berlaku semasa pemulangan urus niaga, Oracle akan melancarkan urus niaga tetapi tidak akan membuang pengecualian.

Amalan terbaik adalah menggunakan pengendalian pengecualian untuk mengendalikan ralat dalam urus niaga untuk memastikan transaksi itu digulung semula dengan betul apabila ralat berlaku.

Atas ialah kandungan terperinci Bagaimana untuk berguling kembali dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan