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

Kondisi balapan antara pilih dan perbarui

Saya berasumsi bahwa UPDATE your Anda pernyataan itu sendiri sedang memverifikasi lastmodified nilai yang Anda baca di SELECT pernyataan sebagai sembilan sisi menyarankan.

Jika lastmodified adalah DATE , maka ada kondisi balapan potensial jika ada beberapa pembaruan pada baris yang sama dalam detik yang sama sejak DATE hanya memiliki granularitas ke yang kedua. Jika lastmodified adalah TIMESTAMP , di sisi lain, jendela di mana kondisi balapan dapat terjadi jauh lebih terbatas karena TIMESTAMP akan memiliki antara 3 dan 9 digit presisi sub-detik (3 pada sebagian besar mesin Windows, 6 pada sebagian besar mesin Unix). Sangat tidak mungkin meskipun bukan tidak mungkin Anda memiliki dua pembaruan pada milidetik yang sama atau bahkan mikrodetik yang sama. Tapi itu tidak sempurna.

Anda dapat menggunakan nilai yang dihasilkan urutan alih-alih tanggal modifikasi terakhir. Itu dapat menjamin bahwa Anda tidak akan kehilangan pembaruan karena urutan NOCYCLE tidak akan mengembalikan nilai yang sama dua kali. Tetapi jika Anda menempuh jalur itu, Anda akan kehilangan manfaat informasi karena memiliki tanggal pembaruan terakhir di setiap baris atau Anda menyimpan beberapa byte data tambahan di setiap baris tabel. Salah satu dari pertukaran itu mungkin sepadan, tergantung pada aplikasi Anda atau mungkin menimbulkan lebih banyak masalah daripada penyelesaiannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jalur tidak valid saat mencoba menulis file dalam pl sql

  2. Panjang kolom pilihan Oracle

  3. Antrian Lanjutan Oracle Di Jawa

  4. Penanganan kesalahan Oracle

  5. Apa kotak peralatan yang sempurna untuk pengembangan PL/SQL?