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

Pemicu Oracle - masalah dengan tabel bermutasi

Seperti yang Anda perhatikan, akan sulit untuk menjawab kebutuhan bisnis Anda dengan pemicu. Alasannya adalah bahwa Oracle mungkin perbarui/masukkan tabel dengan lebih dari satu utas secara bersamaan untuk satu kueri (DML paralel). Ini menyiratkan bahwa sesi Anda tidak dapat mengkueri tabel yang diperbarui saat pembaruan berlangsung .

Jika Anda benar-benar ingin melakukan ini dengan pemicu, Anda harus mengikuti judul jenis logika yang ditampilkan dalam artikel ini oleh Tom Kyte . Seperti yang Anda lihat, ini bukanlah sesuatu yang sederhana.

Ada metode lain yang lebih sederhana, lebih elegan, lebih mudah dirawat:gunakan prosedur. Cabut hak update/insert kepada pengguna aplikasi dan tulis serangkaian prosedur yang memungkinkan aplikasi memperbarui kolom status.

Prosedur ini akan mengunci baris induk (untuk mencegah beberapa sesi memodifikasi kumpulan baris yang sama) dan akan menerapkan logika bisnis Anda dengan cara yang efisien, mudah dibaca, dan mudah dipelihara.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle10g SQL pivot

  2. perlu mengelompokkan catatan berdasarkan pembalikan yang cocok

  3. Hubungkan OEM Anda ke Grafana menggunakan Aplikasi Manajer Perusahaan untuk Grafana

  4. Partisi harian Oracle DB

  5. Di server SQL, bagaimana saya bisa menanyakan kolom Oracle Timestamp melalui koneksi server Tertaut?