Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

pragma otonom_transaksi dalam pemicu

Menggunakan transaksi otonom untuk apa pun selain pencatatan yang ingin Anda pertahankan saat transaksi induk dibatalkan hampir pasti merupakan kesalahan. Ini bukan penggunaan yang baik dari transaksi otonom.

Apa yang terjadi, misalnya, jika saya memperbarui baris di t1 tapi transaksi saya mundur. t2 perubahan telah dibuat dan dilakukan sehingga tidak mundur. Itu umumnya berarti bahwa t2 data sekarang salah. Inti dari transaksi adalah untuk memastikan bahwa serangkaian perubahan bersifat atomik dan benar-benar berhasil atau sepenuhnya dikembalikan. Membiarkan kode berhasil sebagian hampir tidak pernah merupakan ide yang baik.

Saya kesulitan untuk melihat apa yang menggunakan transaksi otonom membeli Anda di sini. Anda akan sering melihat orang salah menggunakan transaksi otonom untuk mengatasi kesalahan pemicu mutasi. Tetapi kode yang Anda posting tidak akan menghasilkan kesalahan pemicu mutasi kecuali ada pemicu tingkat baris di t2 yang juga mencoba memperbarui t1 atau mekanisme serupa yang memperkenalkan tabel bermutasi. Namun, jika itu masalahnya, menggunakan transaksi otonom biasanya lebih buruk karena transaksi otonom tidak dapat melihat perubahan yang dibuat dalam transaksi induk yang hampir pasti menyebabkan kode berperilaku berbeda dari yang Anda inginkan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle.DatabaseError:ORA-12514:TNS:pendengar saat ini tidak mengetahui layanan yang diminta di deskriptor koneksi

  2. Cara membagi pernyataan sql Oracle untuk ADO.NET

  3. Hasilkan data uji menggunakan pengembang Oracle PL/SQL

  4. menangani data HTML dalam kueri Oracle

  5. Apa yang setara dengan Sql Server untuk DBMS_ASSERT Oracle?