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

Apa yang harus saya gunakan alih-alih urutan untuk menghindari kesenjangan?

Tujuan utama dari sekuens adalah untuk menyediakan sumber dijamin pengenal unik. Ini adalah kunci teknis dan secara umum nilai sebenarnya mereka seharusnya tidak relevan. Maksud saya - apakah Anda perlu menunjukkan nomor folder kepada pengguna?

Jika Anda repot, gunakan NOCACHE. Itu akan meminimalkan celah yang Anda lihat, dan selama Anda tidak membuat folder terlalu sering, Anda tidak akan melihat kinerja yang dicapai karena tidak menyimpan sejumlah kecil angka. Anda mungkin masih mendapatkan celah, jika transaksi dibatalkan atau gagal karena alasan lain tetapi seharusnya jarang; jika tidak, Anda memiliki masalah yang lebih besar untuk dikhawatirkan daripada penomoran folder Anda!

Cara lain untuk menghasilkan seri yang meningkat secara monoton adalah rumit untuk diterapkan (memicu tabel kontrol kode) atau tidak dijamin unik (menggunakan max(id)+1 dalam pemicu). Jika Anda ingin menggunakan tabel kontrol kode - yaitu tabel yang secara khusus melacak ID folder yang terakhir ditetapkan - Anda harus melihat pada jawaban sebelumnya saya menulis yang harus bagaimana melakukan mengimplementasikan satu. Satu keuntungan dari tabel kontrol kode adalah kita dapat mempertahankan jumlah dengan grup. Jadi Anda dapat menjalankan id folder untuk setiap pengguna, dan menambahkannya secara independen.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kursor Untuk Loop dengan Pernyataan SQL dinamis

  2. String koneksi Oracle dengan tanda @ di kata sandi

  3. Cara mengirim permintaan POST dengan data formulir dan parameter di PL/SQL

  4. Kesalahan IO:Mendapat minus satu dari panggilan baca

  5. Jenis Tabel di Oracle PL SQL Contoh