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 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>
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.<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>
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!