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

ORACLE Setelah pemicu pembaruan:memecahkan kesalahan tabel mutasi ORA-04091

"Apakah ada cara untuk menghindari kesalahan tabel mutasi tanpa menggunakan tabel sementara untuk nilai atau transaksi otonom?"

tl;dr tidak.

Kesalahan tabel bermutasi disebabkan oleh kueri tabel yang memiliki pemicu, atau tabel yang terlibat dalam hubungan kunci asing dengan tabel pemilik (setidaknya dalam versi database yang lebih lama, tidak yakin apakah masih memperoleh).

Dalam aplikasi yang dirancang dengan benar, ini seharusnya tidak diperlukan. Inilah sebabnya mengapa banyak orang menganggap tabel bermutasi sebagai indikator pemodelan data yang buruk. Misalnya, mutasi sering dikaitkan dengan normalisasi yang tidak memadai.

Mengutip Jamie Zawinski:Beberapa orang, ketika dihadapkan dengan pengecualian tabel bermutasi, berpikir "Saya tahu, saya akan menggunakan transaksi otonom." Sekarang mereka memiliki dua masalah.

Terkadang kesalahan dapat dihindari hanya dengan memodifikasi nilai :NEW dalam pemicu BEFORE INSERT OR UPDATE atau dengan menggunakan kolom virtual. Tetapi Anda harus memposting lebih banyak detail untuk melihat apakah ini berlaku.

Tetapi solusi terbaik adalah tidak membutuhkan jenis lain.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernasi> CLOB> Oracle :(

  2. Bagaimana cara mendapatkan informasi tentang indeks dan pemilik tabel di Oracle?

  3. Oracle sebagai Solusi dari Mutasi Tabel

  4. Rencana eksekusi Oracle saat menggunakan operator LIKE dengan fungsi DETERMINISTIC

  5. Balikkan di Oracle jalur ini z/y/x ke x/y/z