PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mana yang lebih baik - Melempar Pengecualian atau Memeriksa kesalahan sebelumnya

Anda harus melakukan metode "pengecualian coba-dan-tangkap" hanya karena Anda tetap harus melakukannya.

Jika Anda memeriksa terlebih dahulu, tidak ada yang dapat menghentikan seseorang menyisipkan baris untuk pengguna tersebut antara cek dan sisipan Anda, dalam hal ini pengguna akan berada di tabel meskipun cek Anda tidak menemukannya.

Kurang mampu menjalankan check-and-insert dalam semacam transaksi (sehingga tidak ada orang lain yang dapat memasukkan pengguna itu untuk sementara). Anda tidak dapat memastikan bahwa non-pengecualian akan berhasil.

Dan meskipun banyak DBMS yang menyediakan dukungan transaksional, saya tidak tahu ada yang akan mengunci baris yang belum Anda masukkan :-)

Tentu saja, jika aplikasi Anda dirancang sedemikian rupa sehingga hanya proses Anda yang akan memasukkan pengguna (dan diserialisasi), Anda dapat menggunakan metode check-first. Tapi saya akan memberikan banyak komentar yang menyatakan bahwa itu perlu ditinjau kembali jika Anda meningkatkannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengotomatiskan Barman dengan Wayang:it2ndq/barman (bagian dua)

  2. Kesulitan Mengakses DB Postgres Jarak Jauh di Heroku dari Aplikasi Web Node.js Lokal

  3. Performa Buruk ketika kesamaan trigram dan pencarian teks lengkap digabungkan dengan Q ind Django menggunakan postgres

  4. Hibernate 4 dan Postgres :Bagaimana cara membuat urutan per tabel?

  5. Bagaimana cara membuat Kunci Utama memiliki digit X di PostgreSQL?